Ignore:
Timestamp:
11/07/2005 02:42:39 AM (18 years ago)
Author:
Randy McMurchy <randy@…>
Branches:
10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 6.2, 6.2.0, 6.2.0-rc1, 6.2.0-rc2, 6.3, 6.3-rc1, 6.3-rc2, 6.3-rc3, 7.10, 7.4, 7.5, 7.6, 7.6-blfs, 7.6-systemd, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, gnome, kde5-13430, kde5-14269, kde5-14686, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, krejzi/svn, lazarus, lxqt, nosym, perl-modules, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, systemd-11177, systemd-13485, trunk, upgradedb, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
Children:
2555778
Parents:
67f2f78a
Message:

Added several programming languages to the 'Other Programming Tools' section

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@5264 af4574ff-66df-0310-9fd7-8a98e5e911e0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • general/prog/other-tools.xml

    r67f2f78a re92c670e  
    5757
    5858    -->
     59
     60    <sect3 role="package">
     61      <title>A+</title>
     62
     63      <para><application>A+</application> is a powerful and efficient
     64      programming language. It is freely available under the GNU General
     65      Public License. It embodies a rich set of functions and operators, a
     66      modern graphical user interface with many widgets and automatic
     67      synchronization of widgets and variables, asynchronous execution of
     68      functions associated with variables and events, dynamic loading of user
     69      compiled subroutines, and many other features. Execution is by a rather
     70      efficient interpreter. <application>A+</application> was created at
     71      Morgan Stanley. Primarily used in a computationally-intensive business
     72      environment, many critical applications written in
     73      <application>A+</application> have withstood the demands of real world
     74      developers over many years. Written in an interpreted language,
     75      <application>A+</application> applications tend to be portable.</para>
     76
     77      <itemizedlist spacing="compact">
     78        <listitem>
     79          <para>Project Home Page: <ulink
     80          url="http://www.aplusdev.org/"/></para>
     81        </listitem>
     82        <listitem>
     83          <para>Download Location: <ulink
     84          url="http://www.aplusdev.org/Download/index.html"/></para>
     85        </listitem>
     86      </itemizedlist>
     87
     88    </sect3>
     89
     90    <sect3 role="package">
     91      <title>ASM</title>
     92
     93      <para><application>ASM</application> is a Java bytecode manipulation
     94      framework. It can be used to dynamically generate stub classes or other
     95      proxy classes, directly in binary form, or to dynamically modify
     96      classes at load time, i.e., just before they are loaded into the Java
     97      Virtual Machine. <application>ASM</application> offers similar
     98      functionalities as BCEL or SERP, but is much smaller (33KB instead of
     99      350KB for BCEL and 150KB for SERP) and faster than these tools (the
     100      overhead of a load time class transformation is of the order of 60% with
     101      <application>ASM</application>, 700% or more with BCEL, and 1100% or
     102      more with SERP). Indeed <application>ASM</application> was designed to be
     103      used in a dynamic way (though it works statically as well) and was
     104      therefore designed and implemented to be as small and as fast as
     105      possible.</para>
     106
     107      <itemizedlist spacing="compact">
     108        <listitem>
     109          <para>Project Home Page: <ulink
     110          url="http://asm.objectweb.org/"/></para>
     111        </listitem>
     112        <listitem>
     113          <para>Download Location: <ulink
     114          url="http://forge.objectweb.org/projects/asm/"/></para>
     115        </listitem>
     116      </itemizedlist>
     117
     118    </sect3>
     119
     120    <sect3 role="package">
     121      <title>&lt;bigwig&gt;</title>
     122
     123      <para><application>&lt;bigwig&gt;</application> is a high-level
     124      programming language for developing interactive Web services. Programs
     125      are compiled into a conglomerate of lower-level technologies such as C
     126      code, HTTP, HTML, JavaScript, and SSL, all running on top of a runtime
     127      system based on an Apache Web server module. It is a descendant of the
     128      Mawl project but is a completely new design and implementation with
     129      vastly expanded ambitions. The <application>&lt;bigwig&gt;</application>
     130      language is really a collection of tiny domain-specific languages
     131      focusing on different aspects of interactive Web services. These
     132      contributing languages are held together by a C-like skeleton language.
     133      Thus, <application>&lt;bigwig&gt;</application> has the look and feel of
     134      C-programs but with special data and control structures.</para>
     135
     136      <itemizedlist spacing="compact">
     137        <listitem>
     138          <para>Project Home Page: <ulink
     139          url="http://www.brics.dk/bigwig/"/></para>
     140        </listitem>
     141        <listitem>
     142          <para>Download Location: <ulink
     143          url="http://www.brics.dk/bigwig/download/"/></para>
     144        </listitem>
     145      </itemizedlist>
     146
     147    </sect3>
     148
     149    <sect3 role="package">
     150      <title>Byte Code Engineering Library (BCEL)</title>
     151
     152      <para><application>BECL</application> is intended to give users a
     153      convenient possibility to analyze, create, and manipulate (binary) Java
     154      class files (those ending with
     155      <filename class='extension'>.class</filename>). Classes are represented
     156      by objects which contain all the symbolic information of the given class:
     157      methods, fields and byte code instructions, in particular. Such objects
     158      can be read from an existing file, be transformed by a program (e.g., a
     159      class loader at run-time) and dumped to a file again. An even more
     160      interesting application is the creation of classes from scratch at
     161      run-time. The Byte Code Engineering Library may be also useful if you
     162      want to learn about the Java Virtual Machine (JVM) and the format of Java
     163      <filename class='extension'>.class</filename> files.
     164      <application>BCEL</application> is already being used successfully in
     165      several projects such as compilers, optimizers, obsfuscators, code
     166      generators and analysis tools.</para>
     167
     168      <itemizedlist spacing="compact">
     169        <listitem>
     170          <para>Project Home Page: <ulink
     171          url="http://jakarta.apache.org/bcel/index.html"/></para>
     172        </listitem>
     173        <listitem>
     174          <para>Download Location: <ulink
     175          url="http://jakarta.apache.org/site/downloads/downloads_bcel.cgi/"/></para>
     176        </listitem>
     177      </itemizedlist>
     178
     179    </sect3>
     180
     181    <sect3 role="package">
     182      <title>Bigloo</title>
     183
     184      <para><application>Bigloo</application> is a Scheme implementation
     185      devoted to one goal: enabling Scheme based programming style where C(++)
     186      is usually required. <application>Bigloo</application> attempts to make
     187      Scheme practical by offering features usually presented by traditional
     188      programming languages but not offered by Scheme and functional
     189      programming. Bigloo compiles Scheme modules and delivers small and fast
     190      stand-alone binary executables. It enables full connections between
     191      Scheme and C programs, between Scheme and Java programs, and between
     192      Scheme and C# programs.</para>
     193
     194      <itemizedlist spacing="compact">
     195        <listitem>
     196          <para>Project Home Page: <ulink
     197          url="http://www-sop.inria.fr/mimosa/fp/Bigloo/"/></para>
     198        </listitem>
     199        <listitem>
     200          <para>Download Location: <ulink
     201          url="ftp://ftp-sop.inria.fr/mimosa/fp/Bigloo/"/></para>
     202        </listitem>
     203      </itemizedlist>
     204
     205    </sect3>
     206
     207    <sect3 role="package">
     208      <title>C--</title>
     209
     210      <para><application>C--</application> is a portable assembly language that
     211      can be generated by a front end and implemented by any of several code
     212      generators. It serves as an interface between high-level compilers and
     213      retargetable, optimizing code generators. Authors of front ends and code
     214      generators can cooperate easily.</para>
     215
     216      <itemizedlist spacing="compact">
     217        <listitem>
     218          <para>Project Home Page: <ulink
     219          url="http://www.cminusminus.org/"/></para>
     220        </listitem>
     221        <listitem>
     222          <para>Download Location: <ulink
     223          url="http://www.cminusminus.org/code.html"/></para>
     224        </listitem>
     225      </itemizedlist>
     226
     227    </sect3>
     228
     229    <sect3 role="package">
     230      <title>Caml</title>
     231
     232      <para><application>Caml</application> is a general-purpose programming
     233      language, designed with program safety and reliability in mind. It is
     234      very expressive, yet easy to learn and use.
     235      <application>Caml</application> supports functional, imperative, and
     236      object-oriented programming styles. It has been developed and distributed
     237      by INRIA, France's national research institute for computer science,
     238      since 1985. The Objective Caml system is the main implementation of the
     239      <application>Caml</application> language. It features a powerful module
     240      system and a full-fledged object-oriented layer. It comes with a
     241      native-code compiler that supports numerous architectures, for high
     242      performance; a bytecode compiler, for increased portability; and an
     243      interactive loop, for experimentation and rapid development.</para>
     244
     245      <itemizedlist spacing="compact">
     246        <listitem>
     247          <para>Project Home Page: <ulink
     248          url="http://caml.inria.fr/"/></para>
     249        </listitem>
     250        <listitem>
     251          <para>Download Location: <ulink
     252          url="http://caml.inria.fr/pub/distrib/"/></para>
     253        </listitem>
     254      </itemizedlist>
     255
     256    </sect3>
     257
     258    <sect3 role="package">
     259      <title>Cayenne</title>
     260
     261      <para><application>Cayenne</application> is a simple(?) functional
     262      language with a powerful type system. The basic types are functions,
     263      products, and sums. Functions and products use dependent types to gain
     264      additional power. There are very few building blocks in the language, but
     265      a lot of <quote>syntactic sugar</quote> to make it more readable. There
     266      is no separate module language in <application>Cayenne</application>
     267      since the dependent types allow the normal expression language to be used
     268      at the module level as well. The design of
     269      <application>Cayenne</application> has been heavily influenced by
     270      <application>Haskell</application> and constructive type theory and with
     271      some things borrowed from Java. The drawback of such a powerful type
     272      system is that the type checking becomes undecidable.</para>
     273
     274      <itemizedlist spacing="compact">
     275        <listitem>
     276          <para>Project Home Page: <ulink
     277          url="http://www.cs.chalmers.se/~augustss/cayenne/"/></para>
     278        </listitem>
     279        <listitem>
     280          <para>Download Location: <ulink
     281          url="http://www.cs.chalmers.se/~augustss/cayenne/get.html"/></para>
     282        </listitem>
     283      </itemizedlist>
     284
     285    </sect3>
     286
     287    <sect3 role="package">
     288      <title>Ch</title>
     289
     290      <para><application>Ch</application> is an embeddable C/C++ interpreter
     291      for cross-platform scripting, shell programming, 2D/3D plotting,
     292      numerical computing, and embedded scripting.</para>
     293
     294      <itemizedlist spacing="compact">
     295        <listitem>
     296          <para>Project Home Page: <ulink
     297          url="http://www.softintegration.com/"/></para>
     298        </listitem>
     299        <listitem>
     300          <para>Download Location: <ulink
     301          url="http://www.softintegration.com/products/chstandard/download/"/></para>
     302        </listitem>
     303      </itemizedlist>
     304
     305    </sect3>
     306
     307    <sect3 role="package">
     308      <title>Clean</title>
     309
     310      <para><application>Clean</application> is a general purpose,
     311      state-of-the-art, pure and lazy functional programming language designed
     312      for making real-world applications. <application>Clean</application> is
     313      the only functional language in the world which offers uniqueness typing.
     314      This type system makes it possible in a pure functional language to
     315      incorporate destructive updates of arbitrary data structures (including
     316      arrays) and to make direct interfaces to the outside imperative world.
     317      The type system makes it possible to develop efficient
     318      applications.</para>
     319
     320      <itemizedlist spacing="compact">
     321        <listitem>
     322          <para>Project Home Page: <ulink
     323          url="http://www.cs.ru.nl/~clean/"/></para>
     324        </listitem>
     325        <listitem>
     326          <para>Download Location: <ulink
     327          url="http://www.cs.ru.nl/~clean/Download/download.html"/></para>
     328        </listitem>
     329      </itemizedlist>
     330
     331    </sect3>
     332
     333    <sect3 role="package">
     334      <title>Cyclone</title>
     335
     336      <para><application>Cyclone</application> is a programming language based
     337      on C that is safe, meaning that it rules out programs that have buffer
     338      overflows, dangling pointers, format string attacks, and so on.
     339      High-level, type-safe languages, such as Java, Scheme, or ML also provide
     340      safety, but they don't give the same control over data representations
     341      and memory management that C does (witness the fact that the run-time
     342      systems for these languages are usually written in C.) Furthermore,
     343      porting legacy C code to these languages or interfacing with legacy C
     344      libraries is a difficult and error-prone process. The goal of
     345      <application>Cyclone</application> is to give programmers the same
     346      low-level control and performance of C without sacrificing safety, and to
     347      make it easy to port or interface with legacy C code.</para>
     348
     349      <itemizedlist spacing="compact">
     350        <listitem>
     351          <para>Project Home Page: <ulink
     352          url="http://www.research.att.com/projects/cyclone/"/></para>
     353        </listitem>
     354        <listitem>
     355          <para>Download Location: <ulink
     356          url="http://www.eecs.harvard.edu/~greg/cyclone/software/"/></para>
     357        </listitem>
     358      </itemizedlist>
     359
     360    </sect3>
     361
     362    <sect3 role="package">
     363      <title>D</title>
     364
     365      <para><application>D</application> is a general purpose systems and
     366      applications programming language. It is a higher level language than
     367      C++, but retains the ability to write high performance code and interface
     368      directly with the operating system APIs and with hardware.
     369      <application>D</application> is well suited to writing medium to large
     370      scale million line programs with teams of developers. It is easy to
     371      learn, provides many capabilities to aid the programmer, and is well
     372      suited to aggressive compiler optimization technology.
     373      <application>D</application> is not a scripting language, nor an
     374      interpreted language. It doesn't come with a VM, a religion, or an
     375      overriding philosophy. It's a practical language for practical
     376      programmers who need to get the job done quickly, reliably, and leave
     377      behind maintainable, easy to understand code.
     378      <application>D</application> is the culmination of decades of experience
     379      implementing compilers for many diverse languages, and attempting to
     380      construct large projects using those languages. It draws inspiration from
     381      those other languages (most especially C++) and tempers it with
     382      experience and real world practicality.</para>
     383
     384      <itemizedlist spacing="compact">
     385        <listitem>
     386          <para>Project Home Page: <ulink
     387          url="http://www.digitalmars.com/d/"/></para>
     388        </listitem>
     389        <listitem>
     390          <para>Download Location: <ulink
     391          url="ftp://ftp.digitalmars.com/"/></para>
     392        </listitem>
     393      </itemizedlist>
     394
     395    </sect3>
     396
     397    <sect3 role="package">
     398      <title>DMDScript</title>
     399
     400      <para><application>DMDScript</application> is Digital Mars'
     401      implementation of the ECMA 262 scripting language. Netscape's
     402      implementation is called JavaScript, Microsoft's implementation is
     403      called JScript. <application>DMDScript</application> is much faster
     404      than other implementations, which you can verify with the included
     405      benchmark.</para>
     406
     407      <itemizedlist spacing="compact">
     408        <listitem>
     409          <para>Project Home Page: <ulink
     410          url="http://www.digitalmars.com/dscript/index.html"/></para>
     411        </listitem>
     412        <listitem>
     413          <para>Download Location: <ulink
     414          url="ftp://ftp.digitalmars.com/"/></para>
     415        </listitem>
     416      </itemizedlist>
     417
     418    </sect3>
     419
     420    <sect3 role="package">
     421      <title>DotGNU Portable.NET</title>
     422
     423      <para><application>DotGNU Portable.NET</application> goal is to build a
     424      suite of free software tools to build and execute .NET applications,
     425      including a C# compiler, assembler, disassembler, and runtime engine.
     426      While the initial target platform was GNU/Linux, it is also known to run
     427      under Windows, Solaris, NetBSD, FreeBSD, and MacOS X. The runtime engine
     428      has been tested on the x86, PowerPC, ARM, Sparc, PARISC, s390, Alpha, and
     429      IA-64 processors. <application>DotGNU Portable.NET</application> is part
     430      of the DotGNU project, built in accordance with the requirements of the
     431      GNU Project. DotGNU Portable.NET is focused on compatibility with the
     432      ECMA specifications for CLI. There are other projects under the DotGNU
     433      meta-project to build other necessary pieces of infrastructure, and to
     434      explore non-CLI approaches to virtual machine implementation.</para>
     435
     436      <itemizedlist spacing="compact">
     437        <listitem>
     438          <para>Project Home Page: <ulink
     439          url="http://www.southern-storm.com.au/portable_net.html"/></para>
     440        </listitem>
     441        <listitem>
     442          <para>Download Location: <ulink
     443          url="http://www.southern-storm.com.au/portable_net.html#download"/></para>
     444        </listitem>
     445      </itemizedlist>
     446
     447    </sect3>
     448
     449    <sect3 role="package">
     450      <title>E</title>
     451
     452      <para><application>E</application> is a secure distributed Java-based
     453      pure-object platform and p2p scripting language. It has two parts: ELib
     454      and the <application>E</application> Language. Elib provides the stuff
     455      that goes on between objects. As a pure-Java library, ELib provides for
     456      inter-process capability-secure distributed programming. Its
     457      cryptographic capability protocol enables mutually suspicious Java
     458      processes to cooperate safely, and its event-loop concurrency and promise
     459      pipelining enable high performance deadlock free distributed pure-object
     460      computing. The <application>E</application> Language can be used to
     461      express what happens within an object. It provides a convenient and
     462      familiar notation for the ELib computational model, so you can program
     463      in one model rather than two. Under the covers, this notation expands
     464      into Kernel-E, a minimalist lambda-language much like Scheme or
     465      Smalltalk. Objects written in the <application>E</application> language
     466      are only able to interact with other objects according to ELib's
     467      semantics, enabling object granularity intra-process security, including
     468      the ability to safely run untrusted mobile code (such as caplets).</para>
     469
     470      <itemizedlist spacing="compact">
     471        <listitem>
     472          <para>Project Home Page: <ulink
     473          url="http://www.erights.org/"/></para>
     474        </listitem>
     475        <listitem>
     476          <para>Download Location: <ulink
     477          url="http://www.erights.org/download/"/></para>
     478        </listitem>
     479      </itemizedlist>
     480
     481    </sect3>
     482
     483    <sect3 role="package">
     484      <title>Erlang/OTP</title>
     485
     486      <para><application>Erlang/OTP</application> is a development environment
     487      based on Erlang. Erlang is a programming language which has many features
     488      more commonly associated with an operating system than with a programming
     489      language: concurrent processes, scheduling, memory management,
     490      distribution, networking, etc. The initial open-source Erlang release
     491      contains the implementation of Erlang, as well as a large part of
     492      Ericsson's middleware for building distributed high-availability systems.
     493      Erlang is characterized by the following features: robustness, soft
     494      real-time, hot code upgrades and incremental code loading.</para>
     495
     496      <itemizedlist spacing="compact">
     497        <listitem>
     498          <para>Project Home Page: <ulink
     499          url="http://www.erlang.org/"/></para>
     500        </listitem>
     501        <listitem>
     502          <para>Download Location: <ulink
     503          url="http://www.erlang.org/download.html"/></para>
     504        </listitem>
     505      </itemizedlist>
     506
     507    </sect3>
    59508
    60509    <sect3 role="package">
     
    86535
    87536    <sect3 role="package">
     537      <title>GNU Smalltalk</title>
     538
     539      <para><application>GNU Smalltalk</application> is a free implementation
     540      of the Smalltalk-80 language which runs on most versions on Unix and, in
     541      general, everywhere you can find a POSIX-compliance library. An uncommon
     542      feature of it is that it is well-versed to scripting tasks and headless
     543      processing. See <ulink
     544      url="http://www.gnu.org/software/smalltalk/gst-manual/gst_1.html#SEC1"/>
     545      for a more detailed explanation of
     546      <application>GNU Smalltalk</application>.</para>
     547
     548      <itemizedlist spacing="compact">
     549        <listitem>
     550          <para>Project Home Page: <ulink
     551          url="http://www.gnu.org/software/smalltalk/"/></para>
     552        </listitem>
     553        <listitem>
     554          <para>Download Location: <ulink
     555          url="http://ftp.gnu.org/gnu/smalltalk/"/></para>
     556        </listitem>
     557      </itemizedlist>
     558
     559    </sect3>
     560
     561    <sect3 role="package">
     562      <title>Haskell</title>
     563
     564      <para>Haskell is a computer programming language. In particular, it is a
     565      polymorphicly typed, lazy, purely functional language, quite different
     566      from most other programming languages. The language is named for Haskell
     567      Brooks Curry, whose work in mathematical logic serves as a foundation for
     568      functional languages. Haskell is based on lambda calculus. There are many
     569      implementations of Haskell, among them:</para>
     570
     571      <itemizedlist spacing="compact">
     572        <listitem>
     573          <para>GHC: <ulink
     574          url="http://www.haskell.org/ghc/"/></para>
     575        </listitem>
     576        <listitem>
     577          <para>HBC: <ulink
     578          url="http://www.cs.chalmers.se/~augustss/hbc/hbc.html"/></para>
     579        </listitem>
     580        <listitem>
     581          <para>Helium: <ulink
     582          url="http://www.cs.uu.nl/helium/"/></para>
     583        </listitem>
     584        <listitem>
     585          <para>Hugs: <ulink
     586          url="http://www.haskell.org/hugs/"/></para>
     587        </listitem>
     588        <listitem>
     589          <para>nhc98: <ulink
     590          url="http://www.haskell.org/nhc98/"/></para>
     591        </listitem>
     592      </itemizedlist>
     593
     594    </sect3>
     595
     596    <sect3 role="package">
     597      <title>Jamaica</title>
     598
     599      <para><application>Jamaica</application>, the JVM Macro Assembler, is an
     600      easy-to-learn and easy-to-use assembly language for JVM bytecode
     601      programming. It uses Java syntax to define a JVM class except for the
     602      method body that takes bytecode instructions, including
     603      <application>Jamaica</application>'s built-in macros. In
     604      <application>Jamaica</application>, bytecode instructions use mnemonics
     605      and symbolic names for all variables, parameters, data fields, constants
     606      and labels.</para>
     607
     608      <itemizedlist spacing="compact">
     609        <listitem>
     610          <para>Project Home Page: <ulink
     611          url="http://www.judoscript.com/jamaica.html"/></para>
     612        </listitem>
     613        <listitem>
     614          <para>Download Location: <ulink
     615          url="http://www.judoscript.com/download.html"/></para>
     616        </listitem>
     617      </itemizedlist>
     618
     619    </sect3>
     620
     621    <sect3 role="package">
     622      <title>Judo</title>
     623
     624      <para><application>Judo</application> is a practical, functional
     625      scripting language. It is designed to cover the use cases of not only
     626      algorithmic/object-oriented/multi-threaded programming and Java scripting
     627      but also a number of major application domain tasks, such as scripting
     628      for JDBC, WSDL, ActiveX, OS, multiple file/data formats, etc. Despite its
     629      rich functionality, the base language is extremely simple, and domain
     630      support syntax is totally intuitive to domain experts, so that even
     631      though you have never programmed in <application>Judo</application>, you
     632      would have little trouble figuring out what the code does.</para>
     633
     634      <itemizedlist spacing="compact">
     635        <listitem>
     636          <para>Project Home Page: <ulink
     637          url="http://www.judoscript.com/home.html"/></para>
     638        </listitem>
     639        <listitem>
     640          <para>Download Location: <ulink
     641          url="http://www.judoscript.com/download.html"/></para>
     642        </listitem>
     643      </itemizedlist>
     644
     645    </sect3>
     646
     647    <sect3 role="package">
     648      <title>JWIG</title>
     649
     650      <para><application>JWIG</application> is a Java-based high-level
     651      programming language for development of interactive Web services. It
     652      contains an advanced session model, a flexible mechanism for dynamic
     653      construction of XML documents, in particular XHTML, and a powerful API
     654      for simplifying use of the HTTP protocol and many other aspects of Web
     655      service programming. To support program development,
     656      <application>JWIG</application> provides a unique suite of highly
     657      specialized program analyses that at compile time verify for a given
     658      program that no runtime errors can occur while building documents or
     659      receiving form input, and that all documents being shown are valid
     660      according to the document type definition for XHTML 1.0. The main goal of
     661      the <application>JWIG</application> project is to simplify development of
     662      complex Web services, compared to alternatives, such as, Servlets, JSP,
     663      ASP, and PHP. <application>JWIG</application> is a descendant of the
     664      <application>&lt;bigwig&gt;</application> research language.</para>
     665
     666      <itemizedlist spacing="compact">
     667        <listitem>
     668          <para>Project Home Page: <ulink
     669          url="http://www.brics.dk/JWIG/"/></para>
     670        </listitem>
     671        <listitem>
     672          <para>Download Location: <ulink
     673          url="http://www.brics.dk/JWIG/download.html"/></para>
     674        </listitem>
     675      </itemizedlist>
     676
     677    </sect3>
     678
     679    <sect3 role="package">
     680      <title>Lua</title>
     681
     682      <para><application>Lua</application> is a powerful light-weight
     683      programming language designed for extending applications. It is also
     684      frequently used as a general-purpose, stand-alone language. It is free
     685      software. <application>Lua</application> combines simple procedural
     686      syntax with powerful data description constructs based on associative
     687      arrays and extensible semantics. It is dynamically typed, interpreted
     688      from bytecodes, and has automatic memory management with garbage
     689      collection, making it ideal for configuration, scripting, and rapid
     690      prototyping. A fundamental concept in the design of
     691      <application>Lua</application> is to provide meta-mechanisms for
     692      implementing features, instead of providing a host of features directly
     693      in the language. For example, although <application>Lua</application> is
     694      not a pure object-oriented language, it does provide meta-mechanisms for
     695      implementing classes and inheritance. <application>Lua</application>'s
     696      meta-mechanisms bring an economy of concepts and keep the language small,
     697      while allowing the semantics to be extended in unconventional ways.
     698      Extensible semantics is a distinguishing feature of
     699      <application>Lua</application>. <application>Lua</application> is a
     700      language engine that you can embed into your application. This means
     701      that, besides syntax and semantics, it has an API that allows the
     702      application to exchange data with <application>Lua</application> programs
     703      and also to extend <application>Lua</application> with C functions. In
     704      this sense, it can be regarded as a language framework for building
     705      domain-specific languages. <application>Lua</application> is implemented
     706      as a small library of C functions, written in ANSI C, and compiles
     707      unmodified in all known platforms. The implementation goals are
     708      simplicity, efficiency, portability, and low embedding cost. The result
     709      is a fast language engine with small footprint, making it ideal in
     710      embedded systems too.</para>
     711
     712      <itemizedlist spacing="compact">
     713        <listitem>
     714          <para>Project Home Page: <ulink
     715          url="http://www.lua.org/"/></para>
     716        </listitem>
     717        <listitem>
     718          <para>Download Location: <ulink
     719          url="http://www.lua.org/download.html"/></para>
     720        </listitem>
     721      </itemizedlist>
     722
     723    </sect3>
     724
     725    <sect3 role="package">
    88726      <title>Mono</title>
    89727
     
    123761          <para>Download Location: <ulink
    124762          url="http://prdownloads.sourceforge.net/ogdl/"/></para>
     763        </listitem>
     764      </itemizedlist>
     765
     766    </sect3>
     767
     768    <sect3 role="package">
     769      <title>pike</title>
     770
     771      <para><application>pike</application> is a dynamic programming language
     772      with a syntax similar to Java and C. It is simple to learn, does not
     773      require long compilation passes and has powerful built-in data types
     774      allowing simple and really fast data manipulation. Pike is released under
     775      the GNU GPL, GNU LGPL and MPL.</para>
     776
     777      <itemizedlist spacing="compact">
     778        <listitem>
     779          <para>Project Home Page: <ulink
     780          url="http://pike.ida.liu.se/"/></para>
     781        </listitem>
     782        <listitem>
     783          <para>Download Location: <ulink
     784          url="http://pike.ida.liu.se/download/pub/pike"/></para>
    125785        </listitem>
    126786      </itemizedlist>
     
    155815          <para>Download Location: <ulink
    156816          url="http://cran.r-project.org/mirrors.html"/></para>
     817        </listitem>
     818      </itemizedlist>
     819
     820    </sect3>
     821
     822    <sect3 role="package">
     823      <title>Regina Rexx</title>
     824
     825      <para><application>Regina</application> is a Rexx interpreter that has
     826      been ported to most Unix platforms (Linux, FreeBSD, Solaris, AIX, HP-UX,
     827      etc.) and also to OS/2, eCS, DOS, Win9x/Me/NT/2k/XP, Amiga, AROS, QNX4.x,
     828      QNX6.x BeOS, MacOS X, EPOC32, AtheOS, OpenVMS, SkyOS and OpenEdition.
     829      Rexx is a programming language that was designed to be easy to use for
     830      inexperienced programmers yet powerful enough for experienced users. It
     831      is also a language ideally suited as a macro language for other
     832      applications.</para>
     833
     834      <itemizedlist spacing="compact">
     835        <listitem>
     836          <para>Project Home Page: <ulink
     837          url="http://regina-rexx.sourceforge.net/"/></para>
     838        </listitem>
     839        <listitem>
     840          <para>Download Location: <ulink
     841          url="http://prdownloads.sourceforge.net/regina-rexx"/></para>
     842        </listitem>
     843      </itemizedlist>
     844
     845    </sect3>
     846
     847    <sect3 role="package">
     848      <title>Serp</title>
     849
     850      <para><application>Serp</application> is an open source framework for
     851      manipulating Java bytecode. The goal of the
     852      <application>Serp</application> bytecode framework is to tap the full
     853      power of bytecode modification while lowering its associated costs. The
     854      framework provides a set of high-level APIs for manipulating all aspects
     855      of bytecode, from large-scale structures like class member fields to the
     856      individual instructions that comprise the code of methods. While in order
     857      to perform any advanced manipulation, some understanding of the class
     858      file format and especially of the JVM instruction set is necessary, the
     859      framework makes it as easy as possible to enter the world of bytecode
     860      development.</para>
     861
     862      <itemizedlist spacing="compact">
     863        <listitem>
     864          <para>Project Home Page: <ulink
     865          url="http://serp.sourceforge.net/"/></para>
     866        </listitem>
     867        <listitem>
     868          <para>Download Location: <ulink
     869          url="http://serp.sourceforge.net/files/"/></para>
     870        </listitem>
     871      </itemizedlist>
     872
     873    </sect3>
     874
     875    <sect3 role="package">
     876      <title>Small Device C Compiler (SDCC)</title>
     877
     878      <para><application>SDCC</application> is a Freeware, retargettable,
     879      optimizing ANSI-C compiler that targets the Intel 8051, Maxim 80DS390
     880      and the Zilog Z80 based MCUs. Work is in progress on supporting the
     881      Motorola 68HC08 as well as Microchip PIC16 and PIC18 series. The entire
     882      source code for the compiler is distributed under GPL.</para>
     883
     884      <itemizedlist spacing="compact">
     885        <listitem>
     886          <para>Project Home Page: <ulink
     887          url="http://sdcc.sourceforge.net/"/></para>
     888        </listitem>
     889        <listitem>
     890          <para>Download Location: <ulink
     891          url="http://sdcc.sourceforge.net/snap.php#Source"/></para>
     892        </listitem>
     893      </itemizedlist>
     894
     895    </sect3>
     896
     897    <sect3 role="package">
     898      <title>Standard ML</title>
     899
     900      <para>Standard ML is a safe, modular, strict, functional, polymorphic
     901      programming language with compile-time type checking and type inference,
     902      garbage collection, exception handling, immutable data types and
     903      updatable references, abstract data types, and parametric modules. It has
     904      efficient implementations and a formal definition with a proof of
     905      soundness. There are many implementations of Standard ML, among them:</para>
     906
     907      <itemizedlist spacing="compact">
     908        <listitem>
     909          <para>ML Kit: <ulink
     910          url="http://www.it-c.dk/research/mlkit/"/></para>
     911        </listitem>
     912        <listitem>
     913          <para>MLton: <ulink
     914          url="http://mlton.org/"/></para>
     915        </listitem>
     916        <listitem>
     917          <para>Moscow ML: <ulink
     918          url="http://www.dina.kvl.dk/~sestoft/mosml.html"/></para>
     919        </listitem>
     920        <listitem>
     921          <para>Poly/ML: <ulink
     922          url="http://www.polyml.org/"/></para>
     923        </listitem>
     924        <listitem>
     925          <para>Standard ML of New Jersey: <ulink
     926          url="http://www.smlnj.org/"/></para>
     927        </listitem>
     928      </itemizedlist>
     929
     930    </sect3>
     931
     932    <sect3 role="package">
     933      <title>Steel Bank Common Lisp (SBCL)</title>
     934
     935      <para><application>SBCL</application> is an open source (free software)
     936      compiler and runtime system for ANSI Common Lisp. It provides an
     937      interactive environment including an integrated native compiler, a
     938      debugger, and many extensions. <application>SBCL</application> runs on a
     939      number of platforms.</para>
     940
     941      <itemizedlist spacing="compact">
     942        <listitem>
     943          <para>Project Home Page: <ulink
     944          url="http://www.sbcl.org/"/></para>
     945        </listitem>
     946        <listitem>
     947          <para>Download Location: <ulink
     948          url="http://prdownloads.sourceforge.net/sbcl/"/></para>
     949        </listitem>
     950      </itemizedlist>
     951
     952    </sect3>
     953
     954    <sect3 role="package">
     955      <title>Tiny C Compiler (TCC)</title>
     956
     957      <para><application>Tiny C Compiler</application> is a small C compiler
     958      that can be used to compile and execute C code everywhere, for example
     959      on rescue disks (about 100KB for x86 TCC executable, including C
     960      preprocessor, C compiler, assembler and linker).
     961      <application>TCC</application> is fast. It generates optimized x86 code,
     962      has no byte code overhead and compiles, assembles and links several times
     963      faster than <application>GCC</application>.
     964      <application>TCC</application> is versatile, any C dynamic library can be
     965      used directly. It is heading torward full ISOC99 compliance and can
     966      compile itself. The compiler is safe as it includes an optional memory
     967      and bound checker. Bound checked code can be mixed freely with standard
     968      code. <application>TCC</application> compiles and executes C source
     969      directly. No linking or assembly necessary. A full C preprocessor and
     970      GNU-like assembler is included. It is C script supported; just add
     971      <quote>#!/usr/local/bin/tcc -run</quote> on the first line of your C
     972      source, and execute it directly from the command line. With libtcc, you
     973      can use <application>TCC</application> as a backend for dynamic code
     974      generation.</para>
     975
     976      <itemizedlist spacing="compact">
     977        <listitem>
     978          <para>Project Home Page: <ulink
     979          url="http://www.tinycc.org/"/></para>
     980        </listitem>
     981        <listitem>
     982          <para>Download Location: <ulink
     983          url="http://fabrice.bellard.free.fr/tcc/"/></para>
    157984        </listitem>
    158985      </itemizedlist>
Note: See TracChangeset for help on using the changeset viewer.