diff --git a/general.ent b/general.ent index 4286da3aed..5b40120697 100644 --- a/general.ent +++ b/general.ent @@ -1,4 +1,4 @@ - + diff --git a/general/prog/other-tools.xml b/general/prog/other-tools.xml index adbae65b1e..483a31d482 100644 --- a/general/prog/other-tools.xml +++ b/general/prog/other-tools.xml @@ -57,6 +57,455 @@ --> + + A+ + + A+ is a powerful and efficient + programming language. It is freely available under the GNU General + Public License. It embodies a rich set of functions and operators, a + modern graphical user interface with many widgets and automatic + synchronization of widgets and variables, asynchronous execution of + functions associated with variables and events, dynamic loading of user + compiled subroutines, and many other features. Execution is by a rather + efficient interpreter. A+ was created at + Morgan Stanley. Primarily used in a computationally-intensive business + environment, many critical applications written in + A+ have withstood the demands of real world + developers over many years. Written in an interpreted language, + A+ applications tend to be portable. + + + + Project Home Page: + + + Download Location: + + + + + + + ASM + + ASM is a Java bytecode manipulation + framework. It can be used to dynamically generate stub classes or other + proxy classes, directly in binary form, or to dynamically modify + classes at load time, i.e., just before they are loaded into the Java + Virtual Machine. ASM offers similar + functionalities as BCEL or SERP, but is much smaller (33KB instead of + 350KB for BCEL and 150KB for SERP) and faster than these tools (the + overhead of a load time class transformation is of the order of 60% with + ASM, 700% or more with BCEL, and 1100% or + more with SERP). Indeed ASM was designed to be + used in a dynamic way (though it works statically as well) and was + therefore designed and implemented to be as small and as fast as + possible. + + + + Project Home Page: + + + Download Location: + + + + + + + <bigwig> + + <bigwig> is a high-level + programming language for developing interactive Web services. Programs + are compiled into a conglomerate of lower-level technologies such as C + code, HTTP, HTML, JavaScript, and SSL, all running on top of a runtime + system based on an Apache Web server module. It is a descendant of the + Mawl project but is a completely new design and implementation with + vastly expanded ambitions. The <bigwig> + language is really a collection of tiny domain-specific languages + focusing on different aspects of interactive Web services. These + contributing languages are held together by a C-like skeleton language. + Thus, <bigwig> has the look and feel of + C-programs but with special data and control structures. + + + + Project Home Page: + + + Download Location: + + + + + + + Byte Code Engineering Library (BCEL) + + BECL is intended to give users a + convenient possibility to analyze, create, and manipulate (binary) Java + class files (those ending with + .class). Classes are represented + by objects which contain all the symbolic information of the given class: + methods, fields and byte code instructions, in particular. Such objects + can be read from an existing file, be transformed by a program (e.g., a + class loader at run-time) and dumped to a file again. An even more + interesting application is the creation of classes from scratch at + run-time. The Byte Code Engineering Library may be also useful if you + want to learn about the Java Virtual Machine (JVM) and the format of Java + .class files. + BCEL is already being used successfully in + several projects such as compilers, optimizers, obsfuscators, code + generators and analysis tools. + + + + Project Home Page: + + + Download Location: + + + + + + + Bigloo + + Bigloo is a Scheme implementation + devoted to one goal: enabling Scheme based programming style where C(++) + is usually required. Bigloo attempts to make + Scheme practical by offering features usually presented by traditional + programming languages but not offered by Scheme and functional + programming. Bigloo compiles Scheme modules and delivers small and fast + stand-alone binary executables. It enables full connections between + Scheme and C programs, between Scheme and Java programs, and between + Scheme and C# programs. + + + + Project Home Page: + + + Download Location: + + + + + + + C-- + + C-- is a portable assembly language that + can be generated by a front end and implemented by any of several code + generators. It serves as an interface between high-level compilers and + retargetable, optimizing code generators. Authors of front ends and code + generators can cooperate easily. + + + + Project Home Page: + + + Download Location: + + + + + + + Caml + + Caml is a general-purpose programming + language, designed with program safety and reliability in mind. It is + very expressive, yet easy to learn and use. + Caml supports functional, imperative, and + object-oriented programming styles. It has been developed and distributed + by INRIA, France's national research institute for computer science, + since 1985. The Objective Caml system is the main implementation of the + Caml language. It features a powerful module + system and a full-fledged object-oriented layer. It comes with a + native-code compiler that supports numerous architectures, for high + performance; a bytecode compiler, for increased portability; and an + interactive loop, for experimentation and rapid development. + + + + Project Home Page: + + + Download Location: + + + + + + + Cayenne + + Cayenne is a simple(?) functional + language with a powerful type system. The basic types are functions, + products, and sums. Functions and products use dependent types to gain + additional power. There are very few building blocks in the language, but + a lot of syntactic sugar to make it more readable. There + is no separate module language in Cayenne + since the dependent types allow the normal expression language to be used + at the module level as well. The design of + Cayenne has been heavily influenced by + Haskell and constructive type theory and with + some things borrowed from Java. The drawback of such a powerful type + system is that the type checking becomes undecidable. + + + + Project Home Page: + + + Download Location: + + + + + + + Ch + + Ch is an embeddable C/C++ interpreter + for cross-platform scripting, shell programming, 2D/3D plotting, + numerical computing, and embedded scripting. + + + + Project Home Page: + + + Download Location: + + + + + + + Clean + + Clean is a general purpose, + state-of-the-art, pure and lazy functional programming language designed + for making real-world applications. Clean is + the only functional language in the world which offers uniqueness typing. + This type system makes it possible in a pure functional language to + incorporate destructive updates of arbitrary data structures (including + arrays) and to make direct interfaces to the outside imperative world. + The type system makes it possible to develop efficient + applications. + + + + Project Home Page: + + + Download Location: + + + + + + + Cyclone + + Cyclone is a programming language based + on C that is safe, meaning that it rules out programs that have buffer + overflows, dangling pointers, format string attacks, and so on. + High-level, type-safe languages, such as Java, Scheme, or ML also provide + safety, but they don't give the same control over data representations + and memory management that C does (witness the fact that the run-time + systems for these languages are usually written in C.) Furthermore, + porting legacy C code to these languages or interfacing with legacy C + libraries is a difficult and error-prone process. The goal of + Cyclone is to give programmers the same + low-level control and performance of C without sacrificing safety, and to + make it easy to port or interface with legacy C code. + + + + Project Home Page: + + + Download Location: + + + + + + + D + + D is a general purpose systems and + applications programming language. It is a higher level language than + C++, but retains the ability to write high performance code and interface + directly with the operating system APIs and with hardware. + D is well suited to writing medium to large + scale million line programs with teams of developers. It is easy to + learn, provides many capabilities to aid the programmer, and is well + suited to aggressive compiler optimization technology. + D is not a scripting language, nor an + interpreted language. It doesn't come with a VM, a religion, or an + overriding philosophy. It's a practical language for practical + programmers who need to get the job done quickly, reliably, and leave + behind maintainable, easy to understand code. + D is the culmination of decades of experience + implementing compilers for many diverse languages, and attempting to + construct large projects using those languages. It draws inspiration from + those other languages (most especially C++) and tempers it with + experience and real world practicality. + + + + Project Home Page: + + + Download Location: + + + + + + + DMDScript + + DMDScript is Digital Mars' + implementation of the ECMA 262 scripting language. Netscape's + implementation is called JavaScript, Microsoft's implementation is + called JScript. DMDScript is much faster + than other implementations, which you can verify with the included + benchmark. + + + + Project Home Page: + + + Download Location: + + + + + + + DotGNU Portable.NET + + DotGNU Portable.NET goal is to build a + suite of free software tools to build and execute .NET applications, + including a C# compiler, assembler, disassembler, and runtime engine. + While the initial target platform was GNU/Linux, it is also known to run + under Windows, Solaris, NetBSD, FreeBSD, and MacOS X. The runtime engine + has been tested on the x86, PowerPC, ARM, Sparc, PARISC, s390, Alpha, and + IA-64 processors. DotGNU Portable.NET is part + of the DotGNU project, built in accordance with the requirements of the + GNU Project. DotGNU Portable.NET is focused on compatibility with the + ECMA specifications for CLI. There are other projects under the DotGNU + meta-project to build other necessary pieces of infrastructure, and to + explore non-CLI approaches to virtual machine implementation. + + + + Project Home Page: + + + Download Location: + + + + + + + E + + E is a secure distributed Java-based + pure-object platform and p2p scripting language. It has two parts: ELib + and the E Language. Elib provides the stuff + that goes on between objects. As a pure-Java library, ELib provides for + inter-process capability-secure distributed programming. Its + cryptographic capability protocol enables mutually suspicious Java + processes to cooperate safely, and its event-loop concurrency and promise + pipelining enable high performance deadlock free distributed pure-object + computing. The E Language can be used to + express what happens within an object. It provides a convenient and + familiar notation for the ELib computational model, so you can program + in one model rather than two. Under the covers, this notation expands + into Kernel-E, a minimalist lambda-language much like Scheme or + Smalltalk. Objects written in the E language + are only able to interact with other objects according to ELib's + semantics, enabling object granularity intra-process security, including + the ability to safely run untrusted mobile code (such as caplets). + + + + Project Home Page: + + + Download Location: + + + + + + + Erlang/OTP + + Erlang/OTP is a development environment + based on Erlang. Erlang is a programming language which has many features + more commonly associated with an operating system than with a programming + language: concurrent processes, scheduling, memory management, + distribution, networking, etc. The initial open-source Erlang release + contains the implementation of Erlang, as well as a large part of + Ericsson's middleware for building distributed high-availability systems. + Erlang is characterized by the following features: robustness, soft + real-time, hot code upgrades and incremental code loading. + + + + Project Home Page: + + + Download Location: + + + + + Euphoria @@ -84,6 +533,195 @@ + + GNU Smalltalk + + GNU Smalltalk is a free implementation + of the Smalltalk-80 language which runs on most versions on Unix and, in + general, everywhere you can find a POSIX-compliance library. An uncommon + feature of it is that it is well-versed to scripting tasks and headless + processing. See + for a more detailed explanation of + GNU Smalltalk. + + + + Project Home Page: + + + Download Location: + + + + + + + Haskell + + Haskell is a computer programming language. In particular, it is a + polymorphicly typed, lazy, purely functional language, quite different + from most other programming languages. The language is named for Haskell + Brooks Curry, whose work in mathematical logic serves as a foundation for + functional languages. Haskell is based on lambda calculus. There are many + implementations of Haskell, among them: + + + + GHC: + + + HBC: + + + Helium: + + + Hugs: + + + nhc98: + + + + + + + Jamaica + + Jamaica, the JVM Macro Assembler, is an + easy-to-learn and easy-to-use assembly language for JVM bytecode + programming. It uses Java syntax to define a JVM class except for the + method body that takes bytecode instructions, including + Jamaica's built-in macros. In + Jamaica, bytecode instructions use mnemonics + and symbolic names for all variables, parameters, data fields, constants + and labels. + + + + Project Home Page: + + + Download Location: + + + + + + + Judo + + Judo is a practical, functional + scripting language. It is designed to cover the use cases of not only + algorithmic/object-oriented/multi-threaded programming and Java scripting + but also a number of major application domain tasks, such as scripting + for JDBC, WSDL, ActiveX, OS, multiple file/data formats, etc. Despite its + rich functionality, the base language is extremely simple, and domain + support syntax is totally intuitive to domain experts, so that even + though you have never programmed in Judo, you + would have little trouble figuring out what the code does. + + + + Project Home Page: + + + Download Location: + + + + + + + JWIG + + JWIG is a Java-based high-level + programming language for development of interactive Web services. It + contains an advanced session model, a flexible mechanism for dynamic + construction of XML documents, in particular XHTML, and a powerful API + for simplifying use of the HTTP protocol and many other aspects of Web + service programming. To support program development, + JWIG provides a unique suite of highly + specialized program analyses that at compile time verify for a given + program that no runtime errors can occur while building documents or + receiving form input, and that all documents being shown are valid + according to the document type definition for XHTML 1.0. The main goal of + the JWIG project is to simplify development of + complex Web services, compared to alternatives, such as, Servlets, JSP, + ASP, and PHP. JWIG is a descendant of the + <bigwig> research language. + + + + Project Home Page: + + + Download Location: + + + + + + + Lua + + Lua is a powerful light-weight + programming language designed for extending applications. It is also + frequently used as a general-purpose, stand-alone language. It is free + software. Lua combines simple procedural + syntax with powerful data description constructs based on associative + arrays and extensible semantics. It is dynamically typed, interpreted + from bytecodes, and has automatic memory management with garbage + collection, making it ideal for configuration, scripting, and rapid + prototyping. A fundamental concept in the design of + Lua is to provide meta-mechanisms for + implementing features, instead of providing a host of features directly + in the language. For example, although Lua is + not a pure object-oriented language, it does provide meta-mechanisms for + implementing classes and inheritance. Lua's + meta-mechanisms bring an economy of concepts and keep the language small, + while allowing the semantics to be extended in unconventional ways. + Extensible semantics is a distinguishing feature of + Lua. Lua is a + language engine that you can embed into your application. This means + that, besides syntax and semantics, it has an API that allows the + application to exchange data with Lua programs + and also to extend Lua with C functions. In + this sense, it can be regarded as a language framework for building + domain-specific languages. Lua is implemented + as a small library of C functions, written in ANSI C, and compiles + unmodified in all known platforms. The implementation goals are + simplicity, efficiency, portability, and low embedding cost. The result + is a fast language engine with small footprint, making it ideal in + embedded systems too. + + + + Project Home Page: + + + Download Location: + + + + + Mono @@ -127,6 +765,28 @@ + + pike + + pike is a dynamic programming language + with a syntax similar to Java and C. It is simple to learn, does not + require long compilation passes and has powerful built-in data types + allowing simple and really fast data manipulation. Pike is released under + the GNU GPL, GNU LGPL and MPL. + + + + Project Home Page: + + + Download Location: + + + + + R @@ -159,6 +819,173 @@ + + Regina Rexx + + Regina is a Rexx interpreter that has + been ported to most Unix platforms (Linux, FreeBSD, Solaris, AIX, HP-UX, + etc.) and also to OS/2, eCS, DOS, Win9x/Me/NT/2k/XP, Amiga, AROS, QNX4.x, + QNX6.x BeOS, MacOS X, EPOC32, AtheOS, OpenVMS, SkyOS and OpenEdition. + Rexx is a programming language that was designed to be easy to use for + inexperienced programmers yet powerful enough for experienced users. It + is also a language ideally suited as a macro language for other + applications. + + + + Project Home Page: + + + Download Location: + + + + + + + Serp + + Serp is an open source framework for + manipulating Java bytecode. The goal of the + Serp bytecode framework is to tap the full + power of bytecode modification while lowering its associated costs. The + framework provides a set of high-level APIs for manipulating all aspects + of bytecode, from large-scale structures like class member fields to the + individual instructions that comprise the code of methods. While in order + to perform any advanced manipulation, some understanding of the class + file format and especially of the JVM instruction set is necessary, the + framework makes it as easy as possible to enter the world of bytecode + development. + + + + Project Home Page: + + + Download Location: + + + + + + + Small Device C Compiler (SDCC) + + SDCC is a Freeware, retargettable, + optimizing ANSI-C compiler that targets the Intel 8051, Maxim 80DS390 + and the Zilog Z80 based MCUs. Work is in progress on supporting the + Motorola 68HC08 as well as Microchip PIC16 and PIC18 series. The entire + source code for the compiler is distributed under GPL. + + + + Project Home Page: + + + Download Location: + + + + + + + Standard ML + + Standard ML is a safe, modular, strict, functional, polymorphic + programming language with compile-time type checking and type inference, + garbage collection, exception handling, immutable data types and + updatable references, abstract data types, and parametric modules. It has + efficient implementations and a formal definition with a proof of + soundness. There are many implementations of Standard ML, among them: + + + + ML Kit: + + + MLton: + + + Moscow ML: + + + Poly/ML: + + + Standard ML of New Jersey: + + + + + + + Steel Bank Common Lisp (SBCL) + + SBCL is an open source (free software) + compiler and runtime system for ANSI Common Lisp. It provides an + interactive environment including an integrated native compiler, a + debugger, and many extensions. SBCL runs on a + number of platforms. + + + + Project Home Page: + + + Download Location: + + + + + + + Tiny C Compiler (TCC) + + Tiny C Compiler is a small C compiler + that can be used to compile and execute C code everywhere, for example + on rescue disks (about 100KB for x86 TCC executable, including C + preprocessor, C compiler, assembler and linker). + TCC is fast. It generates optimized x86 code, + has no byte code overhead and compiles, assembles and links several times + faster than GCC. + TCC is versatile, any C dynamic library can be + used directly. It is heading torward full ISOC99 compliance and can + compile itself. The compiler is safe as it includes an optional memory + and bound checker. Bound checked code can be mixed freely with standard + code. TCC compiles and executes C source + directly. No linking or assembly necessary. A full C preprocessor and + GNU-like assembler is included. It is C script supported; just add + #!/usr/local/bin/tcc -run on the first line of your C + source, and execute it directly from the command line. With libtcc, you + can use TCC as a backend for dynamic code + generation. + + + + Project Home Page: + + + Download Location: + + + + + diff --git a/introduction/welcome/changelog.xml b/introduction/welcome/changelog.xml index 26f6f53255..089b24daf7 100644 --- a/introduction/welcome/changelog.xml +++ b/introduction/welcome/changelog.xml @@ -41,6 +41,16 @@ --> + + November 7th, 2005 + + + [randy] - Added several programming languages to the 'Other + Programming Tools' section. + + + + November 5th, 2005