  We present an algorithm to compute bases for the spaces L(G), provided G is a
rational divisor over a non-singular absolutely irreducible algebraic curve,
and also another algorithm to compute the Weierstrass semigroup at P together
with functions for each value in this semigroup, provided P is a rational
branch of a singular plane model for the curve. The method is founded on the
Brill-Noether algorithm by combining in a suitable way the theory of
Hamburger-Noether expansions and the imposition of virtual passing conditions.
Such algorithms are given in terms of symbolic computation by introducing the
notion of symbolic Hamburger-Noether expressions. Everything can be applied to
the effective construction of Algebraic Geometry codes and also in the decoding
problem of such codes, including the case of the Feng and Rao scheme for
one-point codes.
