9 projects tagged "compiler"
Shannon is a general purpose stream-oriented programming language; it is concise and yet feature rich. Streams, FIFOs, and Unix shell-style pipes are first-class concepts in the language. You can connect functions and FIFOs within your program similar to the way you connect processes with pipes in the Unix shell. These constructs in Shannon, however, are highly efficient as no true multitasking is involved, and at the same time they allow you to write more concise and readable code for chained data processing. State is a special type of function that returns a reference to its own local data and any nested functions it may have. In effect, states implement classes in terms of OOP, and yet classes per se aren't part of the language. A special type of modules marked as "persistent" is an effective replacement for databases and SQL. This allows you to access persistent shared data using native Shannon constructs, eliminating the need for an extra query language. Intuitive and minimalist syntax and semantics are used. Particularly, "minimalist semantics" means less things to remember and more possibilities. Shannon is statically-typed, although it provides dynamic typing facilities as well.
Sappeur is a safe and efficient programming language. The memory safety of Sappeur programs is equivalent to Java or .NET without having the performance penalties of those languages. This is implemented with smart pointers and stack allocation of objects and arrays. Also, arrays of objects and synchronous destructors are possible. Sappeur executables are native code and do not use a garbage collector. The safety properties of Sappeur are assured by a proper type system (which forbids weird pointer casts for example) and runtime checks. This is true for both single- and multithreaded programs. The Sappeur compiler translates programs into safe C++ programs, which makes integration with existing C++ code simple. Finally, Sappeur technology erects another layer of defense against cyber threats.
The TI-BASIC Compiler allows you to write TI-BASIC programs for the Texas Instruments TI-83 and TI-84+ calculators using your computer instead of the calculator's keyboard. This allows you to spend more time writing code than navigating menus or trying to scroll around the tiny screen on the calculator.
Metacza is a language and its compiler which produces output in the C++ Meta Template Language. Its concise syntax makes Meta Template Programming much easier. Metacza allows you to write programs using boost::mpl, and to produce C++ header files that can be used on their own. Programming without boost::mpl is also supported. Metacza is a higher order language with closures, let, and lambda.
FeatureC++ is a C++ language extension that supports Feature-Oriented Programming (FOP). FOP studies feature modularity in program families. The idea of FOP is to build software by composing features. Features are basic building blocks that satisfy intuitive user-formulated requirements on the software system. Features refine other features incrementally. This step-wise refinement leads to a layered stack of features. Mixin Layers are one appropriate technique for implementing features.
fpgasm creates bare-metal FPGA designs without Verilog or VHDL. Traditionally, FPGAs are built using proprietary Verilog or VHDL language implementations provided by the vendor. fpgasm is to Verilog and VHDL as assembly language is to C++. It takes you all the way to the netlist, and is not just a translator to Verilog. Because of that, the total "make" time to a working fpga is seconds, not minutes. With fewer than ten reserved words, fpgasm syntax can be mastered in a few minutes. With FPGA assembler, you can focus on understanding the FPGA substrate and how your design should map onto it (instead of figuring out large and complicated tools).
HGL is a compiler/interpreter suite for developing images. It features its own simple but powerful language, an output format configurable by plugins, runtime input handled by plugins, and easy integration into various environments like Web servers or graphical applications. The input is taken from a source file, which has to be compiled for quick and frequent access by the interpreter. An interpreter then runs the compiled files, takes input from custom plugins (if neccessary), and outputs its result via custom plugins.