maryChain


NamemaryChain JSON
Version 0.0.3 PyPI version JSON
download
home_pagehttps://github.com/alessioricco/maryChain
SummarymaryChain - lightweight programming functional language for LLM
upload_time2023-06-17 12:44:59
maintainer
docs_urlNone
authorAlessio Ricco
requires_python>=3.6
licenseMIT
keywords pypi marychain programming language functional ai llm
VCS
bugtrack_url
requirements ply
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/alessioricco/maryChain",
    "name": "maryChain",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "pypi,maryChain,programming language,functional,ai,llm",
    "author": "Alessio Ricco",
    "author_email": "alessio.ricco@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/67/83/8f41de6376c9c01b9ac01f1311d87b4fbdc10ff33d030fe999485fb4f4c7/maryChain-0.0.3.tar.gz",
    "platform": null,
    "description": "# README.md\n\n## Introduction\n\n`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: \n\n- Functions and lambdas\n- Pipelining\n- Binary operations\n- Control structures (conditional and loops)\n- Lazy evaluation\n- Support for standard data types like numbers, strings, and booleans\n- Type casting functions\n- Support for modules and namespaces\n- Support for comments\n\n## Main Features\n\n### Functions and Lambdas\n\nFunctions 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.\n\n### Pipelining\n\nPipelining 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.\n\n### Binary Operations\n\nStandard 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`).\n\n### Control Structures\n\nConditional structures like `IF`, `THEN`, `ELSE`, along with loops like `WHILE` `DO`, are provided in the `maryChain` language. \n\n### Lazy Evaluation\n\nIn `maryChain`, expressions can be declared as lazy, which means they are not evaluated until their result is needed.\n\n### Data Types\n\n`maryChain` supports standard data types such as numbers, strings, and booleans.\n\n### Type Casting Functions\n\nType casting is supported through casting functions like `INTEGERCAST`, `DOUBLECAST`, `STRINGCAST`, `BOOLEANCAST`.\n\n### Support for Modules and Namespaces\n\n`maryChain` provides support for modules and namespaces using `IMPORT` and `NAMESPACE_OP` features. This allows for better code organization and modular programming.\n\n### Comments\n\nComments in `maryChain` are supported, enabling developers to include explanations and documentation within the code itself.\n\n## BNF Grammar for `maryChain` \n\nThe BNF (Backus-Naur Form) grammar for `maryChain` can be inferred from the parser implementation and is as follows:\n\n```\n<program> ::= <import>* <expression>?\n<import> ::= IMPORT <IDENTIFIER> AS <IDENTIFIER>\n<expression> ::= <assignment> | <let_in> | <binop> | <uminus> | <paren_expression> | <term> \n<assignment> ::= <IDENTIFIER> EQUALS <expression>\n<let_in> ::= LET <IDENTIFIER> EQUALS <expression> IN <expression>\n<binop> ::= <expression> <bin_op> <expression>\n<uminus> ::= MINUS <expression>\n<paren_expression> ::= LPAREN <expression> RPAREN\n<term> ::= <factor>\n<factor> ::= NUMBER | STRING | BOOLEAN | <function_call> | <IDENTIFIER>\n<function_call> ::= <IDENTIFIER> LPAREN <args> RPAREN\n<args> ::= <arg>* \n<arg> ::= <expression>\n```\n\nThis 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.\n\nPlease note that this is a simplified representation of the `mary\n\nChain` grammar for illustration purposes. In the actual parser, additional rules and constructs are included to handle precedence, associativity, and complex expressions.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "maryChain - lightweight programming functional language for LLM",
    "version": "0.0.3",
    "project_urls": {
        "Bug Tracker": "https://github.com/alessioricco/maryChain/issues",
        "Download": "https://github.com/alessioricco/maryChain/releases/tag/v0.0.3",
        "Homepage": "https://github.com/alessioricco/maryChain"
    },
    "split_keywords": [
        "pypi",
        "marychain",
        "programming language",
        "functional",
        "ai",
        "llm"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0d1a96968a784b944943e456058f09d2c6535e3466d5ca62667cc5682ce48f3d",
                "md5": "1e7a0aa5c41049b7c0e3f2e761340ff8",
                "sha256": "8321abea641c37c3e951bd4c7815181241700da77a073cfe6bde0df3c83dcb83"
            },
            "downloads": -1,
            "filename": "maryChain-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1e7a0aa5c41049b7c0e3f2e761340ff8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 19062,
            "upload_time": "2023-06-17T12:44:58",
            "upload_time_iso_8601": "2023-06-17T12:44:58.497637Z",
            "url": "https://files.pythonhosted.org/packages/0d/1a/96968a784b944943e456058f09d2c6535e3466d5ca62667cc5682ce48f3d/maryChain-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "67838f41de6376c9c01b9ac01f1311d87b4fbdc10ff33d030fe999485fb4f4c7",
                "md5": "eb2367c12e98fd267e99f353ee00c2be",
                "sha256": "e216a335f06a34c06d432d8a8baf0439e4e488d108d198ea51e0555f662d1c56"
            },
            "downloads": -1,
            "filename": "maryChain-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "eb2367c12e98fd267e99f353ee00c2be",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 20150,
            "upload_time": "2023-06-17T12:44:59",
            "upload_time_iso_8601": "2023-06-17T12:44:59.893864Z",
            "url": "https://files.pythonhosted.org/packages/67/83/8f41de6376c9c01b9ac01f1311d87b4fbdc10ff33d030fe999485fb4f4c7/maryChain-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-17 12:44:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "alessioricco",
    "github_project": "maryChain",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "ply",
            "specs": [
                [
                    "==",
                    "3.11"
                ]
            ]
        }
    ],
    "lcname": "marychain"
}
        
Elapsed time: 0.08118s