{"id":18422429,"url":"https://github.com/sri-csl/plambda","last_synced_at":"2025-04-07T14:32:51.633Z","repository":{"id":57453273,"uuid":"59608802","full_name":"SRI-CSL/PLambda","owner":"SRI-CSL","description":"A Python version of  JLambda","archived":false,"fork":false,"pushed_at":"2022-06-29T16:31:32.000Z","size":10044,"stargazers_count":2,"open_issues_count":0,"forks_count":4,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-10-13T21:51:05.536Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SRI-CSL.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-24T21:09:01.000Z","updated_at":"2022-06-29T16:31:36.000Z","dependencies_parsed_at":"2022-08-29T10:41:53.478Z","dependency_job_id":null,"html_url":"https://github.com/SRI-CSL/PLambda","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FPLambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FPLambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FPLambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2FPLambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SRI-CSL","download_url":"https://codeload.github.com/SRI-CSL/PLambda/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223284550,"owners_count":17119725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T04:29:48.499Z","updated_at":"2024-11-06T04:29:49.157Z","avatar_url":"https://github.com/SRI-CSL.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://badge.fury.io/py/PLambda.svg\n    :target: https://badge.fury.io/py/PLambda\n\n.. image:: https://img.shields.io/badge/License-MIT-blueviolet.svg\n    :target: https://opensource.org/licenses/MIT\n\n.. image:: https://travis-ci.org/SRI-CSL/PLambda.svg?branch=master\n    :target: https://travis-ci.org/SRI-CSL/PLambda\n\n.. image:: https://img.shields.io/pypi/dm/plambda.svg\n    :target: https://pypistats.org/packages/plambda\n\n\n=======\nPLambda\n=======\n\nAn early prototype of a workable version of JLambda for Python.\nTo be used mainly as a part of the IOP imaude system.\n\nJLambda and PLambda are essentially network command and control\nlanguages. JLambda for controlling Java processes, and PLambda for\npython processes.  JLambda is over 14 years old, whereas PLambda\nis just a pup.\n\nNote that Python is not Java so there will be some differences, but\nhopefully the spirit will shine through.\n\nPLambda, like JLambda,  is a fast, efficient, minimalistic, call-by-value, lexically scoped Lisp or\nScheme like language with closures built upon the underlying data structures of the language it rests upon.\nThe interpreter is implemented via CPS (continuation passing style).\n\nGuide for JLambda Afficionados\n------------------------------\n\n https://github.com/SRI-CSL/PLambda/blob/master/GUIDE.md\n\nInstall\n-------\n\nThere is a pip package, but that will move along at a lazier pace than developing directly from\nthe repository.\n\n|\n| ``pip install plambda``\n|\n\n\nDependencies\n------------\n\nThis master is currently using Python 3.7 but most recent Python 3 versions should work. Travis tests it on 3.5, 3.6, 3.7 and 3.8.\nI make no effort to support Python 2, but there is an old branch called 2.7 which might serve your twisted purpose.\nYou will need the antlr4 runtime:\n\n|\n| ``pip install antlr4-python3-runtime``\n|\n\nThough this is done by doing ``make develop`` described next.\n\nDevelop\n-------\n\nCheckout the repository and do:\n\n|\n| ``make develop``\n|\n\nTo run the tests you can do:\n\n|\n| ``make check``\n|\n\n\n\nManuals\n-------\n\nThe jlambda manual can be found here: https://github.com/SRI-CSL/iopc/blob/master/doc/jlambda_manual.pdf?raw=true\n\nThe iop manual can be found here:\nhttps://github.com/SRI-CSL/iopc/blob/master/doc/iop_manual.pdf?raw=true\n\nWebsites\n--------\n\nThe jlambda webpage lives over here: http://jlambda.com/~iop/jlambda.html\n\nThe iop webpage lives over here: http://jlambda.com/~iop/\n\nThe main client of the iop system is SRI International's Pathway Logic: http://pl.csl.sri.com/\n\n\n\nRecipe to add an operator\n-------------------------\n\n\n1. Add it to the grammar ``plambda.antlr4.PLambda.g4``\n\n2. Process the grammar with ``make antlr4``\n\n3. Add the operator to the ``plambda.eval.SymbolTable``\n\n4. Add the operator to the ``plambda.eval.Interpreter``\n\n5. Add some tests to ``tests/language.py``\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Fplambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsri-csl%2Fplambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Fplambda/lists"}