  Generalized concatenated codes were introduced in the 1970s by Zinoviev.
There are many types of codes in the literature that are known by other names
that can be viewed as generalized concatenated codes. Examples include
matrix-product codes, multilevel codes and generalized cascade codes. Decoding
algorithms for generalized concatenated codes were developed during the 1970s
and 1980s. However, their use does not appear to be as widespread as it should,
especially for codes that are known by other names but can be viewed as
generalized concatenated codes.
  In this paper we review the decoding algorithms for concatenated codes,
generalized concatenated codes and matrix-product codes, and clarify the
connection between matrix-product codes and generalized concatenated codes. We
present a small improvement to the decoding algorithm for concatenated codes.
We also extend the decoding algorithms from errors-only decoders to
error-and-erasure decoders. Furthermore, we improve the upper bound on the
computational complexity of the decoding algorithm in the case of
matrix-product codes where the generator matrix for the inner code is
non-singular by columns.
