-
Notifications
You must be signed in to change notification settings - Fork 0
Automatically exported from code.google.com/p/decac
License
jpt4/decac
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Exported from https://code.google.com/p/decac/ on UTC20150909. This is an act of preservation. Not the work of jpt4. All attribution and credit to Eli Gottlieb. Deca: a functional, object-oriented, generic systems programming language by Eli Gottlieb, copyright 2010-2013 January 27, 2013 ------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------- Deca is a language designed to provide the advanced features of sophisticated, high-level programming languages while still programming as close as possible to the bare metal. It brings in the functional, object-oriented, and generic programming paradigms without requiring a garbage collector or a threading system, so programmers really only pay in performance for the features they use. Deca provides first-class functions, lambdas, lexical closures to support functional programming. It provides type inference while still allowing and checking type annotations. Region-based memory management is used in place of garbage collection to support data of dynamic lifetime, and option types replace null pointers. The language definition is evolving steadily in order to reduce the number of language features. ------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------- decac is Deca's compiler, written as a frontend compiler invoking LLVM (http://www.llvm.org). It is written in Scala (http://www.scala-lang.org), with a parser in Java generated by SableCC (http://sablecc.org) from the grammar file deca.scc. Its build system is based, currently, on Apache Ant (http://ant.apache.org), although the Java bindings I wrote for LLVM compile in their own fashion. The entire thing is a work-in-progress right now, but I can safely say that (subject to a refutation of my proof that Deca's type inference always terminates) the type system and type inference are done. I can also safely say that the syntactic grammar is likely to change for the better and clearer as I find ways of eliminating the ambiguities that arise from attempting to simplify it. To compile decac, run: $ ant build_parser $ and build The parser need only be rebuilt when deca.scc has been altered. Happy hacking! --Eli Gottlieb
About
Automatically exported from code.google.com/p/decac
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published