Skip to content

zerksis/nineties-projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Archive of Projects Developed During the 1990's

This is an unmaintained archive of projects worked on in the 1990s.

Though most of the code will need non-trivial rework to run on modern systems, the documentation is quite extensive and may prove useful. For example, the zprof tutorial documents the development of a C basic-block profiler, the zlex manual gives a regular expression for C comments, the zyacc manual gives multiple enhancements useful for bottom-up parser generators, etc.

The only additions made when putting up this repository were to automatically generate PDF's from the existing Postscript or HTML documentation and to add this README. All files other than this file are unchanged from the 1990's. Hence external links will not work. You also get to see vintage Netscape Navigator style gray backgrounds!

The dist directory contains the original distribution archives.

Dimensional Analysis with C++

Source code for the SIGPLAN paper Fully Static Dimensional Analysis with C++. Based on early C++ templates (C++ 2.0). Original README.

Partial Evaluator

An implementation in Prolog of the partial evaluator described in the book Partial Evaluation and Automatic Program Generation. Original README.

Animation of Parsing Algorithms

A Java 1.02 applet which demonstrates recursive-descent parsing, LL(1) parsing and shift-reduce parsing on a simple expression grammar. Shows the currently constructed parse tree/forest, the current parse table/program and a trace of the parse. This will not work with modern browsers since they will not run Java applets (quite a contrast with the hype of the late 90s). Original README.

Unobstrusive Markup Text

Though this project was never released publicly, it is the only project I still use. It is similar to the markups in many wikis or markdown. I have used AsciiDoc in the past, but have returned to this cruder program as it scratched my itch! I hope to redo this program in the near future.

zlex Scanner Generator

A lex-compatible scanner generator. Manual, PDF, original README.

zyacc Parser Generator

A yacc-compatible parser generator with support for inherited attributes using LR-attributed grammars. Provided the following enhancements:

  • Supports inherited attributes which can be uniquely evaluated in a left-to-right parse.

  • Supports semantic tests which allow the outcome of runtime semantic tests to affect parsing decisions.

  • Permits remote interactive debugging of generated parsers either by using a textual interface or by using a (zydebug)[java-based GUI]. The debugger allows the setting of breakpoints on any grammar symbol and selective display of the current parser state.

  • Allows named attribute variables which make maintaining grammars easier.

  • Can generate its parser description files in HTML which can then be viewed using any Web browser (Zyacc Options).

  • Provides a %look directive to check (at parser construction time) whether a reduction requires lookahead.

  • Allows multiple start nonterminals and allows a call to the parsing function to be made for a particular start nonterminal.

  • It is possible to avoid having types which are only used in describing nonterminal semantics written into the generated .h file (Data Types of Semantic Values).

  • Allows multiple-character quoted literal tokens.

  • Allows command-line options to be specified from within the parser file.

Manual, PDF, original README.

zprof Profiler

A source transformation tool to produce basic-block profiles of ANSI-C programs. Given a simple primes-computation program primes.c, zprof can annotate each basic block with its execution count.

Used as a tutorial for zlex and zyacc (PDF). man page, PDF, original README.

About

Archived projects I worked on in the 1990s

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published