Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 1.35 KB

README.md

File metadata and controls

37 lines (27 loc) · 1.35 KB

retrocat

retrocat is a collection of POSIX compliant cat implementations written in a variety of pre-C languages (and C itself). None of the retrocat implementations are written for utility in mind. Instead they are created to be a side-by-side showcase of many old and influential languages.

Languages

Languages with a (WIP) have an incomplete implementation or are planned to be implemented later. Languages with a * are implemented with an updated post-C version of the language.

  • K&R C*
  • FORTRAN*
  • Pascal*
  • ALGOL 60 (WIP)
  • Simula (WIP)
  • COBOL (WIP)
  • LISP (WIP)

Build

Once you clone the directory you can either build every cat with the root makefile or cd into a single language and build that binary. With the root makefile it will generate every binary and copy it to the build/ directory.

Each language's Makefile has the option USE_LANGNAME which prepends the language's name to the executable. To enable this you can add "USE_LANGNAME=1" to the make command.

This is set true automatically in the root makefile meaning the binaries generated and copied to build are named ccat, fortrancat, etc.

Of course, to build each language requires a compiler for the language. So here are the build dependencies and the language that needs it.

  • make (N/A)
  • gcc (C)
  • gfortran (FORTRAN)
  • fpc (Pascal)