Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mlochbaum/ILanguage
An interpreter for a J-inspired language
https://github.com/mlochbaum/ILanguage
Last synced: 3 months ago
JSON representation
An interpreter for a J-inspired language
- Host: GitHub
- URL: https://github.com/mlochbaum/ILanguage
- Owner: mlochbaum
- License: isc
- Created: 2012-05-15T17:45:40.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2023-07-04T17:43:26.000Z (over 1 year ago)
- Last Synced: 2024-07-06T04:13:07.365Z (4 months ago)
- Language: C
- Size: 457 KB
- Stars: 88
- Watchers: 8
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- AwesomeInterpreter - ILanguage
README
# The I programming language
I is a language which generalizes the array and functional capabilities of
the array-programming language J to deal with a much broader variety of
data structures.Some features and design goals of I include:
* Automatic mapping. Like J's array operations, I will map over lists,
sets, associated arrays, and functions.
* Soft typing built into the core of the language.
* Automatic optimization when types are known, using JIT compilation.
* Functional programming. Everything in I is a function.
* Near-nonexistent syntax. Everything is function application.
* Whitespace defines the order of precedence in a visually intuitive way.## Portability
The master branch contains version 0.1, which uses JIT compilation to do
some operations very quickly. The compilation currently targets only the
x86-64 architecture. Nearly all 64-bit desktop or laptop processors should
use this architecture, but if your machine does not, you may want to use
version 0.0, branch `v0.0`. All versions of I have only been tested on
Linux and would probably require a small amount of modification to work
with other operating systems.## Building I
To build, run `gcc *.c -o I`. Then `./I` is a command-line interpreter.
## Resources
See [doc/introduction.md](doc/introduction.md) to begin learning about I.
The flash of insight that started I, built-in mapping, is documented at
[doc/BuiltInMapping/BuiltInMapping.pdf](doc/BuiltInMapping/BuiltInMapping.pdf).
It is presented in a manner that should be accessible to programmers
without any specific language knowledge aside from functional programming.