seplin

所属分类:编程语言基础
开发工具:OCaml
文件大小:0KB
下载次数:0
上传日期:2023-11-07 07:50:21
上 传 者sh-1993
说明:  非函数式编程语言
(Non-functional programming language)

文件列表:
LICENSE (1062, 2024-01-02)
TODO (1078, 2024-01-02)
build.sh (301, 2024-01-02)
compiler/ (0, 2024-01-02)
compiler/dune-project (550, 2024-01-02)
compiler/lib/ (0, 2024-01-02)
compiler/lib/absyn.ml (1820, 2024-01-02)
compiler/lib/assemblyLexer.mll (5470, 2024-01-02)
compiler/lib/assemblyParser.mly (4075, 2024-01-02)
compiler/lib/assemblyWriter.ml (5927, 2024-01-02)
compiler/lib/dune (260, 2024-01-02)
compiler/lib/exceptions.ml (148, 2024-01-02)
compiler/lib/helpers.ml (4253, 2024-01-02)
compiler/lib/lexer.mll (4042, 2024-01-02)
compiler/lib/parser.mly (13243, 2024-01-02)
compiler/lib/programRep.ml (4201, 2024-01-02)
compiler/lib/toProgramRep.ml (51294, 2024-01-02)
compiler/lib/typing.ml (36688, 2024-01-02)
compiler/seplinc.opam (739, 2024-01-02)
compiler/src/ (0, 2024-01-02)
compiler/src/dune (101, 2024-01-02)
compiler/src/seplinc.ml (2917, 2024-01-02)
compiler/test/ (0, 2024-01-02)
compiler/test/compiler.ml (0, 2024-01-02)
compiler/test/dune (24, 2024-01-02)
documentation/ (0, 2024-01-02)
documentation/Expressions.md (6299, 2024-01-02)
documentation/HelloWorlds.md (1546, 2024-01-02)
documentation/StatementsAndDeclarations.md (4514, 2024-01-02)
documentation/Toplevel.md (2152, 2024-01-02)
documentation/TypesAndProtection.md (2419, 2024-01-02)
example_programs/ (0, 2024-01-02)
example_programs/fib_fac.sea (1487, 2024-01-02)
example_programs/generic.sep (1547, 2024-01-02)
example_programs/graphing/ (0, 2024-01-02)
example_programs/graphing/f1.sep (312, 2024-01-02)
example_programs/graphing/f2.sep (1, 2024-01-02)
... ...

# Seplin, a nonfunctional programming language Seplin stands for, **s**ide-**e**ffect **p**rogramming **lin**go, and centers around not being able to return values from function. The language is statically typed, very type strict and the compiler targets a custom designed virtual machine. ## Feature list | Feature | Explaination | | --- | --- | | Side-effect oriented programming | Instead of the concepts of functions or methods, which can return some value, Seplin uses the concept of routines, which cannot return anything. However, all data is stored on the heap, and by default arguments are passed by reference, so changes made in a routine are persisted. | | Full null'ability | Every variable can be null, yes all of them. So be very careful. | | True global top-level | At the top-level of a context, order does not matter. Every routine can use all global variables, all structs and all routines. The compiler will resolve an ordering of global variables, such that circular dependencies will be detected. | | Multi entry point | Routines are marked either 'internal', 'external' or 'entry'. When running the program, any of the entry routines can be used as the entry point. | | Generic types | Both structs and routines can be generic. | | Flexible type inference | Both generic structures, routines, and the type of non-global variable declarations, can be infered in most cases. | | Higher-order routines | Routines have types and can be used as values, and can therefor be assigned to variables and datastructurs, as well as being passed to routines as arguments. | ## Infrastructure To work with Seplin two programs are provided. Additonally, a syntax highlighter for VSCode exists, and can be found in /extenstions. | Program | Explaination | | --- | --- | | seplin | The virtual machine for Seplin. Will invoke the compiler, if given a source file. Use --help for further details. | | seplinc | The compiler for Seplin. Takes a .sep or .sea file as input, and optionally an output directory or file. | ## Special words | Word | Explaination | | --- | --- | | Context | Denotes everything that is available in a file. This includes structs, global variables, routines and references to other contexts. ## Documentation Index ### [Hello Worlds](https://github.com/emiljapelt/seplin/blob/master/./documentation/HelloWorlds.md) ### [Top level](https://github.com/emiljapelt/seplin/blob/master/./documentation/Toplevel.md) ### [Statements and declarations](https://github.com/emiljapelt/seplin/blob/master/./documentation/StatementsAndDeclarations.md) ### [Expressions](https://github.com/emiljapelt/seplin/blob/master/./documentation/Expressions.md) ### [Types](https://github.com/emiljapelt/seplin/blob/master/./documentation/TypesAndProtection.md)

近期下载者

相关文件


收藏者