the lazy functional language Haskell. The development of a parallel
version of scan is presented, which is subsequently used in an
implementation of a text searching algorithm, and an LL(1) parser.
http://www.thinkage.ca/english/products/yay-manual.html#LALR2Grammars
An LALR(2) grammar has one more level of "lookahead" than an LALR(1) grammar. When trying to decide how to parse a given input, an LALR(1) parser sometimes looks at the next input token to see if that makes a difference. In the same situation, an LALR(2) parser can look at the next two tokens.
LALR(2) grammars are described in the same way as LALR(1) grammars. To indicate that you want an LALR(2) parser, you must put the option +LR2 on the command line that invokes YAY.
An LALR(2) parser can perform a lookahead action as well as Shift, Reduce, Goto, Accept, and Error. For example, in a state diagram you might see
A shift 1
B reduce (2)
C lookahead
This means that if token A is encountered in this state, the parser will shift to State 1; if token B is encountered, it will reduce using Rule (2); and if token C is encountered, it will lookahead.
B-Core provides complete support for the
method of software development
that is known as B: an
object-oriented technique that comes closer to
producing zero-defect software than any other currently available.
Can any algorithm, never mind how
abstract, be modeled by a generalized machine very closely and faithfully? ...
If we stick to one abstract level (abstracting from low-level details and being
oblivious to a possible higher-level picture) and if the states of the
algorithm reflect all the pertinent information, then a particular small
instruction set suffices in all cases.
adapted from Yuri Gurevich,
"Sequential
Abstract State Machines Capture Sequential Algorithms"
http://www.eecs.umich.edu/gasm/
The work of the project includes theoretical studies of programming languages and their properties, development of new compiler and run-time technology, and empirical studies of the application of advanced language techniques to real-world programming problems, especially in the areas of high-performance networks and operating systems.
Cool is a small language designed for use in an undergraduate compiler course project. While small enough for a one term project, Cool still has many of the features of modern programming languages, including objects, automatic memory management, and strong static typing.
Compiler optimizations for object-oriented languages, dynamic (run-time compilation), run-time system aspects (such as dispatch mechanisms or garbage collection), and studies of the instruction-level behavior of object-oriented programs.
http://cag.lcs.mit.edu/streamit/
Andrew A. Lamb, William Thies, and Saman Amarasinghe. Linear Analysis and Optimization of Stream Programs. In Proceedings of the SIGPLAN '03 Conference on Programming Language
Design and Implementation,
Michal Karczmarek, William Thies, and Saman Amarasinghe. Phased Scheduling of Stream Programs. In Proceedings
of the 2003 Conference on Languages, Compilers, and Tools for Embedded Systems,
Absynt Project: Semantics Directed Language Implementation