Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Pazcal implementation
C++ Shell
Branch: master

Move to C++ implementation (change in WRITE!)

- First implementation to work in C++.
- First implementation to work with all tests in the test suite.
- Semantics of WRITE macros have changed: no WRITESP anymore, but
  WRITE adds space between successive arguments.
latest commit 315a4ec6cc
@nickie nickie authored
Failed to load latest commit information.
bin Move to C++ implementation (change in WRITE!)
.gitignore Fix a number of issues in scripts, add READ_STRING


Pazcal is an educational subset of the C programming language. It is intended for teaching Introduction to Computer Programming to first-year students of the School of Electrical and Computer Engineering at the National Technical University of Athens. It comes with a set of notes, written by Stathis Zachos and Nikos Papaspyrou, which will eventually be added to this repository.

Pazcal is actually:

  • A header file, called pazcal.h, defining a set of C macros that is meant to facilitate first-year students learning C. All these macros are written in UPPERCASE letters, so they can be easily distinguished from things existing in regular C.
  • A lint-like tool, called pzcheck that forbids everything in C that should not be taught to first-year students.
  • A script, called pzc that combines the above two and can be considered as an implementation of the language.

For the time being, pzcheck does not do anything: it allows all of C plus the macros defined in pazcal.h.


To install Pazcal to your computer, assuming you are running Linux or Mac OS, or that you know what to do with your Windows:

  1. Make sure you have gcc installed and working.

  2. Copy this directory to, say, /full/path/pazcal.

  3. Edit /full/path/pazcal/bin/pzc and set PAZCAL_DIR to point to /full/path/pazcal.

  4. Make sure that all files in /full/path/pazcal/bin are executable and that this directory is in your PATH.


The implementation of Pazcal is maintained by

Something went wrong with that request. Please try again.