Tags : Browse Projects

Select a tag to browse associated projects and drill deeper into the tag cloud.

Stratego/XT

Compare

  Analyzed over 1 year ago

Stratego/XT is a language and toolset for program transformation. The Stratego language provides rewrite rules for expressing basic transformations, programmable rewriting strategies for controlling the application of rules, concrete syntax for expressing the patterns of rules in the syntax of ... [More] the object language, and dynamic rewrite rules for expressing context-sensitive transformations, thus supporting the development of transformation components at a high level of abstraction. The XT toolset offers a collection of flexible, reusable transformation components, as well as declarative languages for deriving new components. Complete program transformation systems are composed from these components. [Less]

2.43M lines of code

0 current contributors

over 4 years since last commit

5 users on Open Hub

Activity Not Available
0.0
 
I Use This

Irony — .NET Language Implementation Kit

Compare

  Analyzed 9 months ago

Irony is a development kit for implementing languages on .NET platform. Unlike most existing yacc/lex-style solutions Irony does not employ any scanner or parser code generation from grammar specifications written in a specialized meta-language. In Irony the target language grammar is coded directly ... [More] in c# using operator overloading to express grammar constructs. Irony's scanner and parser modules use the grammar encoded as c# class to control the parsing process. See the expression grammar sample for an example of grammar definition in c# class, and using it in a working parser. [Less]

31.2K lines of code

0 current contributors

over 3 years since last commit

4 users on Open Hub

Activity Not Available
5.0
 
I Use This

Spoofax

Compare

  Analyzed over 1 year ago

Spoofax is a prototype program transformation and manipulation system based on Stratego that serves as a research vehicle for implementing domain-specific languages, with focus on code plasticity, high-level domain-optimization and generative programming.

258K lines of code

0 current contributors

about 4 years since last commit

4 users on Open Hub

Activity Not Available
0.0
 
I Use This

Relational Meta Language (RML)

Compare

  Analyzed 11 months ago

A compiler-compiler that builds compilers from Natural Semantics specifications.

39.7K lines of code

0 current contributors

over 2 years since last commit

1 users on Open Hub

Activity Not Available
3.0
   
I Use This

tinyaml

Compare

  Analyzed about 1 year ago

This is not yet another Meta-LanguageTinyaML is a virtual machine, a compiler, and a compiler-compiler, powered by the abstract parser tinyap. It is entirely written in C, endian-safe, and allows easy bindings of new C APIs into the virtual machine. The VM executes wordcode with a virtual ... [More] threading model and features a garbage collector. TinyaML allows the user to compile and run assembly code, or plug new grammars for higher-level languages into the parser and implement the methods to compile their ASTs. A manual and documentation are in progress at http://beublo23.free.fr/doxygen/tinyaml/. Version 0.4 features many improvements including : now compiles and runs in 64-bit archs language layers reorganized (currently script over procedural asm over symbolic asm over meta asm over asm) bug fixes everywhere (which just basically means that everything works as expected), script language improvements : variable-sized argument lists in functions, packing and unpacking arrays from/onto stack, thread handling, local and global symbols shared between asm and script layers (one can use script symbols when writing inline asm), and more... file and tcp/udp socket I/O extension (yeah it's a basic requirement, but having the core features working well was a priority, wasn't it ?) And a full-fledged tutorial covering all the aspects of tinyaml, from the basics of the core assembly language syntax to the writing of higher-level language layers and of library extensions ! Contact me at damien dot leroux at gmail dot com for feedback, suggestions, requests or to help improving the code. [Less]

57.9K lines of code

0 current contributors

about 7 years since last commit

1 users on Open Hub

Activity Not Available
0.0
 
I Use This

Eto.Parse

Compare

  Analyzed 29 days ago

Recursive descent LL(k) parser for .NET with Fluent API, BNF, EBNF and Gold Grammars

19.2K lines of code

3 current contributors

7 months since last commit

1 users on Open Hub

Very Low Activity
5.0
 
I Use This

Ela, functional language

Compare

  Analyzed 9 months ago

Ela is a modern programming language that runs on CLR and Mono. The language is dynamically (and strongly) typed and comes with a rich and extensible type system out of box. It provides an extensive support for the functional programming paradigm including but not limited to - first class ... [More] functions, first class currying and composition, list/array comprehensions, pattern matching, polymorphic variants, thunks, etc. It also provides some imperative programming features. Ela supports both strict and non-strict evaluation but is strict by default. The current language implementation is a light-weight and efficient interpreter written fully in C#. The interpreter was designed to be embeddable and has a clear and straightforward API. [Less]

72K lines of code

1 current contributors

9 months since last commit

1 users on Open Hub

Activity Not Available
5.0
 
I Use This

fun4j

Compare

  Analyzed 30 days ago

fun4j brings functional programming to the JVM. It's a framework that integrates major concepts from functional programming into the Java Platform. At its core there is a lambda-to-JVM bytecode compiler. Thanks to optimization techniques like tail code optimization (TCO) the compiler produces ... [More] code that runs as fast as hand optimized Java code. The compiler uses the excellent Java bytecode assembler ASM On top of this compiler you'll find a functional Java framework featuring higher order functions, partial application, support for Collections and Iterators, lambda terms, closures, etc. It's possible to define functions as lambda terms in classical LISP syntax. This avoids all the Java boilerplate code and thus improves code readability. LISP and java code are highly interoperable. [Less]

55K lines of code

0 current contributors

over 3 years since last commit

1 users on Open Hub

Inactive
0.0
 
I Use This

cookcc

Compare

  Analyzed about 1 year ago

CookCC is a lexer and parser (LALR (1)) generator project, combined. It is written in Java, but the target languages can vary. CookCC comes with two unique features, which were the original motivations for this work. CookCC uses a unique approach of storing and loading DFA tables in Java that ... [More] significantly reduces the starting up time. Many efforts have been made to maximize the generated Java lexer and parser performances, painstakingly line-by-line, case-by-case fine turning the lexer and parser code. I believe that CookCC is the fastest lexer for Java (see the performance test). CookCC allows lexer/parser patterns and rules to be specified using Java annotation. This feature greatly simplifies and eases the writing of lexer and parser for Java. Additionally, CookCC can produce highly compressed DFA tables. CookCC requires JRE 1.5+ to run, but the generated Java code can be compiled and run with earlier versions of Java. The current release is 0.3.3. I am currently working on the island grammar on interfaces feature of 0.4, which is taking much longer than I anticipated. Note: the BSD license only applies to CookCC itself. The code generated belongs to you. Road Map for 0.5add re2c-like direct code generation option for Lexer rather than only using table lookup (as of now). Possible mixed mode of execution to reduce table size (and code size), by reducing the number of states to be stored and possibly fewer equivalent classes. Performance gain for Java is questionable but I have thought out the way doing it. C and C++ code generation. More of the long term because right now I do not have need to do so. The performance of flex for C is extremely difficult to beat anyways. What's New0.4 (Upcoming Release)added -extend option to set the parent class of the generated class updated debugLexer, debugLexerBackup, debugParser signature so that it is actually meaningful overload these debugging functions.  Issue 20 : allowed the start symbol to be specified in Java annotation input (by default it was the LHS of the first @Rule). Issue 19: allowed grammar on Java interfaces.  Issue 18 : added -generics option to generate Java code that use generics.  Issue 17 : added optional / optional list / list grammar shortcuts. Possible tree generator (grammar on Java annotations only) 0.3.3allowed the internal buffer to be automatically increased for long matches.  Issue 14 : added yyPushInput, yyPopInput, yyInputStackSize, yyWrap functions (and yywrap option).  Issue 13 : turn on backup lex state warning only when requested.  Issue 12 : added setBOL function to set the next token to be at BOL.  Issue 11 : yacc output does not have %start.  Issue 10 : yacc output fails on empty TokensDoc. 0.3.2added yacc grammar input and output. added yyPushLexerState and yyPopLexerState functions. added line number information for the error messages for Java input. added "parserprolog" section for the generated Java code.  Issue 9 : unable to handle '\'' terminals in the grammar.  Issue 8 : incorrect lalr item lookahead calculation. Now tested against bison using several major language grammars.  Issue 7 : disable APT compile for the CookCC Ant task to prevent class files from generated.  Issue 6 : erroneous warning of unreachable pattern when a lex pattern is shared among multiple lex states.  Issue 5 : tag state attribute did not work. 0.3.1added single quoted literal string as lex patterns. 0.3added input using Java annotation.  Issue 2 : multiple incomplete state can cause internal lex error due to reassignment of the internal pattern case values.  Issue 1 : incorrectly generated parser if start non-terminal is not specified 0.2added parser generator. 0.1initial release. Only includes lexer generator. [Less]

18.2K lines of code

1 current contributors

about 2 years since last commit

0 users on Open Hub

Activity Not Available
0.0
 
I Use This