Skip to main content

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.

Metadata

Release files for maryChain 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for maryChain 0.0.3
File Size Uploaded Provenance Actions
maryChain-0.0.3.tar.gz 20.1 kB Without provenance Details for maryChain-0.0.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for maryChain 0.0.3
File Interpreter ABI Platform Actions
maryChain-0.0.3-py3-none-any.whl Python 3 none any Details for maryChain-0.0.3-py3-none-any.whl

Total release size: 39.2 kB

Release files / maryChain-0.0.3.tar.gz

Download URL maryChain-0.0.3.tar.gz
Size 20.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e216a335f06a34c06d432d8a8baf0439e4e488d108d198ea51e0555f662d1c56
BLAKE2b-256 checksum
How to use checksums
67838f41de6376c9c01b9ac01f1311d87b4fbdc10ff33d030fe999485fb4f4c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / maryChain-0.0.3-py3-none-any.whl

Download URL maryChain-0.0.3-py3-none-any.whl
Size 19.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8321abea641c37c3e951bd4c7815181241700da77a073cfe6bde0df3c83dcb83
BLAKE2b-256 checksum
How to use checksums
0d1a96968a784b944943e456058f09d2c6535e3466d5ca62667cc5682ce48f3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Security for maryChain 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page