All Projects → lauryndbrown → Cisp

lauryndbrown / Cisp

Licence: mit
A Common Lisp Interpreter Built in COBOL

Programming Languages

lisp
113 projects

Projects that are alternatives of or similar to Cisp

abap scheme
ABAP Scheme
Stars: ✭ 13 (-89.17%)
Mutual labels:  lisp-interpreter
Glisp
A Lisp-based Design Tool Bridging Graphic Design and Computational Arts
Stars: ✭ 519 (+332.5%)
Mutual labels:  lisp-interpreter
Tox
misc parsers in rust
Stars: ✭ 40 (-66.67%)
Mutual labels:  lisp-interpreter
PureLISP.sh
A Pure LISP interpreter written in shell script conformed to POSIX shell
Stars: ✭ 30 (-75%)
Mutual labels:  lisp-interpreter
Pampy
Pampy: The Pattern Matching for Python you always dreamed of.
Stars: ✭ 3,419 (+2749.17%)
Mutual labels:  lisp-interpreter
Blispr
Lisp-in-progress
Stars: ✭ 27 (-77.5%)
Mutual labels:  lisp-interpreter
lispkit
FUNCTIONAL PROGRAMMING: Application and Implementation, Peter Henderson, ISBN 0-13-331579-7
Stars: ✭ 33 (-72.5%)
Mutual labels:  lisp-interpreter
Golisp
Lisp Interpreter
Stars: ✭ 107 (-10.83%)
Mutual labels:  lisp-interpreter
Arpilisp
A Lisp interpreter for Raspberry Pi implemented in a single ARM assembly file
Stars: ✭ 470 (+291.67%)
Mutual labels:  lisp-interpreter
Seax
A VM-based runtime environment for functional programming languages
Stars: ✭ 36 (-70%)
Mutual labels:  lisp-interpreter
jisp
Small Lisp expression interpreter made in Java
Stars: ✭ 19 (-84.17%)
Mutual labels:  lisp-interpreter
liyad
Liyad (Lisp yet another DSL interpreter) is very small Lisp interpreter written in JavaScript.
Stars: ✭ 27 (-77.5%)
Mutual labels:  lisp-interpreter
Mal
mal - Make a Lisp
Stars: ✭ 8,287 (+6805.83%)
Mutual labels:  lisp-interpreter
genyris
Genyris presents a new programming paradigm. Objects can belong to multiple classes independent from construction allowing data to be classified into types after creation.
Stars: ✭ 14 (-88.33%)
Mutual labels:  lisp-interpreter
Mal Zh
The Make-A-Lisp Process 中文翻译,如何写一个Lisp解释器
Stars: ✭ 100 (-16.67%)
Mutual labels:  lisp-interpreter
CoCoC
C development system for (Nitr)OS9/6x09, with source
Stars: ✭ 22 (-81.67%)
Mutual labels:  lisp-interpreter
Pampy.js
Pampy.js: Pattern Matching for JavaScript
Stars: ✭ 544 (+353.33%)
Mutual labels:  lisp-interpreter
Yoctolisp
Tiny Scheme-like Lisp interpreter written in a weekend
Stars: ✭ 117 (-2.5%)
Mutual labels:  lisp-interpreter
Mumbler
My experimental programming language using Truffle
Stars: ✭ 100 (-16.67%)
Mutual labels:  lisp-interpreter
Yascm
Yet Another Scheme Interpreter using flex and bison
Stars: ✭ 36 (-70%)
Mutual labels:  lisp-interpreter

Cisp

A Common Lisp Interpreter Built in COBOL.

Overview

Purpose

This is a small project built by a student at the Recurse Center to express a love for COBOL and better understand it.

Due to COBOL's lack of functions and recursion, the recursion required for Lisp is built from the ground up using file processing. Also, due to the lack of a widely supported debugger, a system logger was also implemented.

Compatibility

Please note that Cisp is currently only actively developed for Windows. *Nix users may experience issues.

Functionality

All features are currently in development. This is a list of what is to come.

  • Representation of Symbols and Numbers Ongoing Development
  • Basic Arithmetic Ongoing Development
  • Flow-Control Statements Not Currently in Development
  • Lists Not Currently in Development

Notes

The README much like the entire project is in current development.

Running Cisp

Hello World

  1. Make a subdirectory for your lisp file.
mkdir test\helloworld
  1. Create a new file helloworld.lisp in your subdirectory containing the following:
(print "HelloWorld!")
  1. To run Cisp cd into the bin (Note that you must cd in)
cd bin
  1. Run Cisp
cisp.exe ..\test\helloworld\helloworld.lisp

Project Structure

Currently the COBOL source files are located in the root directory.

Directories

  • bin - Contains all necessary *.dll's (windows users) for those who want to play with CISP without changing the code. This is due to the fact that so few people have COBOL compilers.
  • logs - Contains the log file generated by the system.
  • test - Contains all test files organized by subject.

COBOL Files

  • cisp.cbl - The main COBOL program.
  • cisp-error.cbl - The Error System in the program. It will "throw" errors when called.
  • lisp.cbl - Responsible for executing the lisp program.
  • logger.cbl - The Logging System in the program. It will log events in the system when called.
  • recursion.cbl - Handles recursion as requested from lisp.cbl.
  • tokenizer.cbl - Responsible for tokenizing the lisp file given to execute.

Compiling

The easiest way I have found to compile COBOL is GNU's COBOL compilier. For those who prefer IDE's I have found Open COBOL IDE to be very helpful.

Running Tests

Windows

To run all tests in the project, double click bin\cisp.bat

To run a single test: cd bin

cisp.exe ..\test\test_subdirectory\test_name.lisp

Create your own Lisp Files for Testing

  1. Create a directory in test\ to create another test category.
  2. In your subdirectory create a lisp file.
  3. cd bin
  4. cisp.exe ..\test\test_subdirectory\test_name.lisp

Linux

Instructions yet to come. The author is a window's user, and *nix systems are not currently supported.

A high level overview is to compile the project and run the executable in the bin folder.

Developing Cisp

How Cisp Works

Log to Log File

Coming soon.

Throw an Error

Coming soon.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].