taxi
ALGOL 60 interpreter

Introduction
Documentation
Installation
Download taxi

Introduction

Welcome to taxi, an interpreter of ALGOL 60. taxi is a boy-interpreter, simple but elegant, full of features and with a full documentation. Why boy? Because it does not fulfill the Knuth's requirements for a complete ALGOL system, and also because it is a very young program: maybe it will better with age. But for the rest, it's a complete and easy tool, useful for learning this wonderful language.

Documentation

Available documentation (which is contained into the downloadable package and is linked here for your convenience):

Installation from sources

While the Windows version executable can be downloaded directly from the link you find at the bottom of this page, the taxi executable for the Linux and Unix environments, must be compiled and installed before usage. I suggest the following very easy procedure in 4 steps (use the terminal):

1) Copy the package somewhere, and unpack it; it will unpack into a directory named taxi.XXX.src (where 'XXX' stands for the version string);

2) Get into taxi source directory, open the file custom.h and change what you think must be changed. The file has auto-explicative comments;

3) Now type the following (be sure to have gcc installed):

$ make
$ make install

The latter may require root privileges if you try to install taxi into system directories, as suggested by default in the Makefile. In this case, if you have administrative access, as a common user, type

$ sudo make install

and the program will install.

4) now type the following to test the correct installation:

$ taxi --version

to see the version number, or better

$ taxi --help

to see all the basic options of taxi. Here it is! taxi is installed and can be run! Remember also to read the manual, to know the internal secrets of taxi!

Download taxi

Version 1.0.alpha 'flag' (August 25, 2024)

Changes:
- corrected the manual
- I solved a bug in string PROCEDURE that caused a SIGSEGV error if the same string procedure was used procedurally (i.e., out of an assignment)
- solved a bug in string PROCEDURE that didn't recognize a string user procedure when used inside another function (e.g. outstring())
- solved a bug for string recognition for HEAD and CONVERT string functions
- solved a bug in RAND that correctly didn't read the keyword

Version 1.0.alpha 'geographic' (January 4, 2021)

Changes:
- modified the warning signalling a variable is already declared to act only if happening in the same procedure or level
- red-coloured letters T,A,X and I in the welcome string.
- corrected a bug in the operators' tokenization, where the central dot was bound to the dot and not to the asterisk (multiplication), as reported in the manual.
- added option -c/--cdc that interprets channel 60 as channel 0 and channel 61 as channel 1; this is necessary for programs written for the CDC system, where channels 60 and 61 were used.
- removed the check for binary files, which interfered with the Windows version. Bruce found this bug.

Version 1.0.alpha 'harbour' (January 3, 2021)

Changes:
- solved a bug found by Bruce Axtens, related to the label indexing.

Version 1.0.alpha 'inshore' (January 2, 2021)

Infinite thanks to Ian Jones, a friend and a great tester who, in the starting phase of development, compiled and ran taxi an incredibly high number of times, finding all sort of errors in the listings. And thanks also to Henry Levkin, who has shown great interest in this tool, adding a reference to www.algol60.org. And finally, last but not least, thanks to Bruce Axtens, who compiled the Windows Version. Without all these guys, this project would hardly have seen the light...

Note: This version coincides with the previous first version of May 29, 2020, with the sole addition of the PAUSE command and a small revision in the manual (for the insertion of the reference of this new addition).

Download

The taxi Alpha sources for the current Linux and Unix versions can be downloaded here.
The Windows executable package can be downloaded
here.

If you want some previous versions (while I cannot understand why, since they are surely bugged!) write to me, and I'll send them to you.
Remember: this is an Alpha version. I expect tons of bugs! I am waiting for your impressions. Send to me your suggestions, your considerations, your corrections, the bugs you find, your working ALGOL 60 programs for  taxi, hopefully fully commented and completed with your name and date: they will be part of the next package if useful for the Algol community.
It's GPL! Enjoy!