a b s t r a c tIn their recogniser forms, the Earley and RIGLR algorithms for testing whether a string can be derived from a grammar are worst-case cubic on general context free grammars (CFG). Earley gave an outline of a method for turning his recognisers into parsers, but it turns out that this method is incorrect. Tomita's GLR parser returns a shared packed parse forest (SPPF) representation of all derivations of a given string from a given CFG but is worstcase unbounded polynomial order. The parser version of the RIGLR algorithm constructs Tomita-style SPPFs and thus is also worst-case unbounded polynomial order. We have given a modified worst-case cubic GLR algorithm, that, for any string and any CFG, returns a binarised SPPF representation of all possible derivations of a given string. In this paper we apply similar techniques to develop worst-case cubic Earley and RIGLR parsing algorithms.Since Knuth's seminal 1960's work on LR parsing [16] was extended to LALR parsers by DeRemer [6,5], the Computer Science community has been able to automatically generate parsers for a very wide class of context free languages. However, many parsers are still written manually, either using tool support or even completely by hand. This is partly because in some application areas such as natural language processing and bioinformatics we do not have the luxury of designing the language so that it is amenable to known parsing techniques, but also it is clear that left to themselves computer language designers do not naturally write LR(1) grammars. Indeed, designers sometimes prefer to write ambiguous grammars because they feel that they are easier to read.A grammar not only defines the syntax of a language, it is also the starting point for the definition of the semantics, and the grammar which facilitates semantic definition is not usually the one which is LR(1). This is illustrated by the development of the Java Standard. The first edition of the Java Language Specification [8] contains a detailed discussion of the need to modify the grammar used to define the syntax and semantics in the main part of the standard to make it LALR(1) for compiler generation purposes. In the third version of the standard [9] the compiler version of the grammar is written in EBNF and is (unnecessarily) ambiguous, illustrating the difficulty of making correct transformations. Given the difficulty in constructing natural LR(1) grammars that support desired semantics, the general parsing techniques, such as the CYK [25], Earley [7] and GLR [24] algorithms, developed for natural language processing are also of interest to the wider computer science community.When using grammars as the starting point for semantics definition, we distinguish between recognisers which simply determine whether or not a given string is in the language defined by a given grammar, and parsers which also return some form of derivation of the string, if one exists. In their basic forms the CYK-, Earley-and GLR-inspired RIGLR [21] algorithms are recognisers, while standard G...