Skip to main content

The PLambda language

Project description

https://badge.fury.io/py/PLambda.svg

PLambda

An attempt to produce a workable version of JLambda for Python. To be used mainly as a part of the IOP imaude system.

JLambda an PLambda are essentially network command and control languages. JLambda for controlling Java processes, and PLambda for python processes. JLambda is over 14 years old, whereas PLambda is just a pup.

Note that Python is not Java so there will be some differences, but hopefully the spirit will shine through. Both will be lexically scoped lisp like languages build upon the underlying data structures of the languages they rest upon.

We’ll start out building a recursive interpreter, then if it gets any major use, turn it into a continuation passing style interpreter like JLambda.

Dependencies

Python 2.7 is desired, though it might work on most pythons. You will need the antlr4 runtime:


pip install antlr4-python2-runtime

Develop

Checkout the repository and do:


make develop

Install

There is a pip package, but that will move along at a lazier pace than developing directly from the repository.


pip install plambda

Manuals

The jlambda manual can be found here: https://github.com/SRI-CSL/iopc/blob/master/doc/jlambda_manual.pdf?raw=true

The iop manual can be found here: https://github.com/SRI-CSL/iopc/blob/master/doc/iop_manual.pdf?raw=true

Websites

The jlambda webpage lives over here: http://jlambda.com/~iop/jlambda.html

The iop webpage lives over here: http://jlambda.com/~iop/

The main client of the iop system is SRI International’s Pathway Logic: http://pl.csl.sri.com/

Recipe to add an operator

  1. Add it to the grammar plambda.antlr4.PLambda.g4

  2. Process the grammar with make antlr4

  3. Add the operator to the plambda.eval.SymbolTable

  4. Add the operator to the plambda.eval.Interpreter

  5. Add some tests to tests/language.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PLambda-1.0.5.tar.gz (32.7 kB view details)

Uploaded Source

File details

Details for the file PLambda-1.0.5.tar.gz.

File metadata

  • Download URL: PLambda-1.0.5.tar.gz
  • Upload date:
  • Size: 32.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for PLambda-1.0.5.tar.gz
Algorithm Hash digest
SHA256 ac2cc73e2586c437f5fab2d8f461c04788d438165f71211398d93cce12e6778c
MD5 4544f6d00e0cdaa9f058410b791e04d0
BLAKE2b-256 76d161517dfd1a86917aaa5853e9d58e8660aff36a96becd60d76903e4dad441

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page