maryChain - lightweight programming functional language for LLM
Project description
README.md
Introduction
maryChain is a powerful programming language designed to meet modern programming needs. It combines characteristics from functional and object-oriented programming paradigms to create an expressive, dynamic, and powerful syntax. The language includes important features such as:
- Functions and lambdas
- Pipelining
- Binary operations
- Control structures (conditional and loops)
- Lazy evaluation
- Support for standard data types like numbers, strings, and booleans
- Type casting functions
- Support for modules and namespaces
- Support for comments
Main Features
Functions and Lambdas
Functions are first-class citizens in maryChain and can be declared using the def keyword. Lambda expressions, on the other hand, are represented by the LAMBDA keyword and allow for creating inline anonymous functions.
Pipelining
Pipelining is a feature that allows the output of one function to be directly fed as the input of the next. The PIPE symbol is used to represent this operation.
Binary Operations
Standard mathematical binary operations are supported, including addition (PLUS), subtraction (MINUS), multiplication (TIMES), and division (DIVIDE). Comparison operators are also supported, including equals (EQUALITY), greater than (GREATER), less than (LESS), greater or equal (GREATEREQUAL), and less or equal (LESSEQUAL).
Control Structures
Conditional structures like IF, THEN, ELSE, along with loops like WHILE DO, are provided in the maryChain language.
Lazy Evaluation
In maryChain, expressions can be declared as lazy, which means they are not evaluated until their result is needed.
Data Types
maryChain supports standard data types such as numbers, strings, and booleans.
Type Casting Functions
Type casting is supported through casting functions like INTEGERCAST, DOUBLECAST, STRINGCAST, BOOLEANCAST.
Support for Modules and Namespaces
maryChain provides support for modules and namespaces using IMPORT and NAMESPACE_OP features. This allows for better code organization and modular programming.
Comments
Comments in maryChain are supported, enabling developers to include explanations and documentation within the code itself.
BNF Grammar for maryChain
The BNF (Backus-Naur Form) grammar for maryChain can be inferred from the parser implementation and is as follows:
<program> ::= <import>* <expression>?
<import> ::= IMPORT <IDENTIFIER> AS <IDENTIFIER>
<expression> ::= <assignment> | <let_in> | <binop> | <uminus> | <paren_expression> | <term>
<assignment> ::= <IDENTIFIER> EQUALS <expression>
<let_in> ::= LET <IDENTIFIER> EQUALS <expression> IN <expression>
<binop> ::= <expression> <bin_op> <expression>
<uminus> ::= MINUS <expression>
<paren_expression> ::= LPAREN <expression> RPAREN
<term> ::= <factor>
<factor> ::= NUMBER | STRING | BOOLEAN | <function_call> | <IDENTIFIER>
<function_call> ::= <IDENTIFIER> LPAREN <args> RPAREN
<args> ::= <arg>*
<arg> ::= <expression>
This grammar represents the syntactic structure of a maryChain program. The keywords in the language are represented as they are, while in <bin_op>, <IDENTIFIER>, <args>, and <arg>, the angle brackets signify a category of symbol.
Please note that this is a simplified representation of the `mary
Chain` grammar for illustration purposes. In the actual parser, additional rules and constructs are included to handle precedence, associativity, and complex expressions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maryChain-0.0.3.tar.gz.
File metadata
- Download URL: maryChain-0.0.3.tar.gz
- Upload date:
- Size: 20.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e216a335f06a34c06d432d8a8baf0439e4e488d108d198ea51e0555f662d1c56
|
|
| MD5 |
eb2367c12e98fd267e99f353ee00c2be
|
|
| BLAKE2b-256 |
67838f41de6376c9c01b9ac01f1311d87b4fbdc10ff33d030fe999485fb4f4c7
|
File details
Details for the file maryChain-0.0.3-py3-none-any.whl.
File metadata
- Download URL: maryChain-0.0.3-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8321abea641c37c3e951bd4c7815181241700da77a073cfe6bde0df3c83dcb83
|
|
| MD5 |
1e7a0aa5c41049b7c0e3f2e761340ff8
|
|
| BLAKE2b-256 |
0d1a96968a784b944943e456058f09d2c6535e3466d5ca62667cc5682ce48f3d
|