source: archive/other-tools.xml

trunk
Last change on this file was 3f2db3a6, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Remove sect1info tags

They only contain a date tag that is nowhere used.

  • Property mode set to 100644
File size: 89.6 KB
RevLine 
[9620b28]1<?xml version="1.0" encoding="ISO-8859-1"?>
[6732c094]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
[9620b28]4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="other-tools" xreflabel="Other Programming Tools">
9 <?dbhtml filename="other-tools.html"?>
10
11
12 <title>Other Programming Tools</title>
13
14 <indexterm zone="other-tools">
15 <primary sortas="a-Other-Programming-Tools">Other Programming Tools</primary>
16 </indexterm>
17
18 <sect2 role="introduction">
19 <title>Introduction</title>
20
[1a629196]21 <para>
22 This section is provided to show you some additional programming
23 tools for which instructions have not yet been created in the book or for
24 those that are not appropriate for the book. Note that these packages may
25 not have been tested by the BLFS team, but their mention here is meant to
26 be a convenient source of additional information.
27 </para>
[9620b28]28
[2b470cf]29 <para condition="html" role="usernotes">User Notes:
30 <ulink url="&blfs-wiki;/OtherProgrammingTools"/></para>
31
[67f2f78a]32 </sect2>
[9aa5011]33
[67f2f78a]34 <sect2>
35 <title>Programming Frameworks, Languages and Compilers</title>
[9aa5011]36
[1a629196]37 <!-- This is a template for additions to this page. Cut 22 lines and
38 paste them in alphabetical order for the new package. '22yy' and
[67f2f78a]39 move down to the alpha order and 'p' works great (using vi).
[9aa5011]40
[9620b28]41 <sect3 role="package">
[67f2f78a]42 <title></title>
[9620b28]43
[1a629196]44 <para>
45 <application></application> This is the description.
46 </para>
[9620b28]47
48 <itemizedlist spacing="compact">
49 <listitem>
[1a629196]50 <para>
51 Project Home Page: <ulink
52 url=""/>
53 </para>
[9620b28]54 </listitem>
55 <listitem>
[1a629196]56 <para>
57 Download Location: <ulink
58 url=""/>
59 </para>
[9620b28]60 </listitem>
61 </itemizedlist>
62
63 </sect3>
64
[67f2f78a]65 -->
66
[e92c670e]67 <sect3 role="package">
68 <title>A+</title>
69
[1a629196]70 <para>
71 <application>A+</application> is a powerful and efficient
72 programming language. It is freely available under the GNU General
73 Public License. It embodies a rich set of functions and operators, a
74 modern graphical user interface with many widgets and automatic
75 synchronization of widgets and variables, asynchronous execution of
76 functions associated with variables and events, dynamic loading of user
77 compiled subroutines, and many other features. Execution is by a rather
78 efficient interpreter. <application>A+</application> was created at
79 Morgan Stanley. Primarily used in a computationally-intensive business
80 environment, many critical applications written in
81 <application>A+</application> have withstood the demands of real world
82 developers over many years. Written in an interpreted language,
83 <application>A+</application> applications tend to be portable.
84 </para>
[e92c670e]85
86 <itemizedlist spacing="compact">
87 <listitem>
[1a629196]88 <para>
89 Project Home Page: <ulink
90 url="http://www.aplusdev.org/"/>
91 </para>
[e92c670e]92 </listitem>
93 <listitem>
[1a629196]94 <para>
95 Download Location: <ulink
96 url="http://www.aplusdev.org/Download/index.html"/>
97 </para>
[e92c670e]98 </listitem>
99 </itemizedlist>
100
101 </sect3>
102
[6ece1a0a]103 <sect3 role="package">
104 <title>ABC</title>
105
[1a629196]106 <para>
107 <application>ABC</application> is an interactive programming language
108 and environment for personal computing, originally intended as a
109 good replacement for BASIC. It was designed by first doing a task
110 analysis of the programming task. <application>ABC</application> is easy
111 to learn (an hour or so for someone who has already programmed), and yet
112 easy to use. Originally intended as a language for beginners, it has
113 evolved into a powerful tool for beginners and experts alike. Some
114 features of the language include: a powerful collection of only five
115 data types that easily combines strong typing, yet without declarations,
116 no limitations (such as max int), apart from sheer exhaustion of memory
117 refinements to support top-down programming, nesting by indentation and
118 programs typically are one fourth or one fifth the size of the
119 equivalent Pascal or C program.
120 </para>
[6ece1a0a]121
122 <itemizedlist spacing="compact">
123 <listitem>
[1a629196]124 <para>
125 Project Home Page: <ulink
126 url="http://homepages.cwi.nl/~steven/abc/"/>
127 </para>
[6ece1a0a]128 </listitem>
129 <listitem>
[1a629196]130 <para>
131 Download Location: <ulink
132 url="http://homepages.cwi.nl/~steven/abc/implementations.html"/>
133 </para>
[6ece1a0a]134 </listitem>
135 </itemizedlist>
136
137 </sect3>
138
139 <sect3 role="package">
140 <title>ALF</title>
141
[1a629196]142 <para>
143 <application>ALF</application> is a language which combines
144 functional and logic programming techniques. The foundation of
145 <application>ALF</application> is Horn clause logic with equality which
146 consists of predicates and Horn clauses for logic programming, and
147 functions and equations for functional programming. The
148 <application>ALF</application> system is an efficient implementation of
149 the combination of resolution, narrowing, rewriting and rejection.
150 Similarly to Prolog, <application>ALF</application> uses a backtracking
151 strategy corresponding to a depth-first search in the derivation tree.
152 </para>
[6ece1a0a]153
154 <itemizedlist spacing="compact">
155 <listitem>
[1a629196]156 <para>
157 Project Home Page: <ulink
158 url="http://www.informatik.uni-kiel.de/~mh/systems/ALF.html"/>
159 </para>
[6ece1a0a]160 </listitem>
161 <listitem>
[1a629196]162 <para>
163 Download Location: <ulink
164 url="http://www.informatik.uni-kiel.de/~mh/systems/ALF/"/>
165 </para>
[6ece1a0a]166 </listitem>
167 </itemizedlist>
168
169 </sect3>
170
[e92c670e]171 <sect3 role="package">
172 <title>ASM</title>
173
[1a629196]174 <para>
175 <application>ASM</application> is a Java bytecode manipulation
176 framework. It can be used to dynamically generate stub classes or other
177 proxy classes, directly in binary form, or to dynamically modify
178 classes at load time, i.e., just before they are loaded into the Java
179 Virtual Machine. <application>ASM</application> offers similar
180 functionalities as BCEL or SERP, but is much smaller (33KB instead of
181 350KB for BCEL and 150KB for SERP) and faster than these tools (the
182 overhead of a load time class transformation is of the order of 60% with
183 <application>ASM</application>, 700% or more with BCEL, and 1100% or
184 more with SERP). Indeed <application>ASM</application> was designed to
185 be used in a dynamic way (though it works statically as well) and was
186 therefore designed and implemented to be as small and as fast as
187 possible.
188 </para>
[e92c670e]189
190 <itemizedlist spacing="compact">
191 <listitem>
[1a629196]192 <para>
193 Project Home Page: <ulink
194 url="http://asm.objectweb.org/"/>
195 </para>
[e92c670e]196 </listitem>
197 <listitem>
[1a629196]198 <para>
199 Download Location: <ulink
200 url="http://forge.objectweb.org/projects/asm/"/>
201 </para>
[e92c670e]202 </listitem>
203 </itemizedlist>
204
205 </sect3>
206
[6ece1a0a]207 <sect3 role="package">
208 <title>BCPL</title>
209
[1a629196]210 <para>
211 <application>BCPL</application> is a simple typeless language that
212 was designed in 1966 by Martin Richards and implemented for the first
213 time at MIT in the Spring of 1967.
214 </para>
[6ece1a0a]215
216 <itemizedlist spacing="compact">
217 <listitem>
[1a629196]218 <para>
219 Project Home Page: <ulink
220 url="http://www.cl.cam.ac.uk/users/mr/BCPL.html"/>
221 </para>
[6ece1a0a]222 </listitem>
223 <listitem>
[1a629196]224 <para>
225 Download Location: <ulink
226 url="http://www.cl.cam.ac.uk/users/mr/BCPL/"/>
227 </para>
[6ece1a0a]228 </listitem>
229 </itemizedlist>
230
231 </sect3>
232
233 <sect3 role="package">
234 <title>BETA</title>
235
[1a629196]236 <para>
237 <application>BETA</application> is developed within the
238 Scandinavian School of object-orientation, where the first
239 object-oriented language, Simula, was developed.
240 <application>BETA</application> is a modern language in the Simula
241 tradition. The resulting language is smaller than Simula in spite of
242 being considerably more expressive. <application>BETA</application> is
243 a strongly typed language like Simula, Eiffel and C++, with most type
244 checking being carried out at compile-time. It is well known that it is
245 not possible to obtain all type checking at compile time without
246 sacrificing the expressiveness of the language.
247 <application>BETA</application> has optimum balance between
248 compile-time type checking and run-time type checking.
249 </para>
[6ece1a0a]250
251 <itemizedlist spacing="compact">
252 <listitem>
[1a629196]253 <para>
254 Project Home Page: <ulink
255 url="http://www.daimi.au.dk/~beta/"/>
256 </para>
[6ece1a0a]257 </listitem>
258 <listitem>
[1a629196]259 <para>
260 Download Location: <ulink
261 url="ftp://ftp.daimi.au.dk/pub/beta/"/>
262 </para>
[6ece1a0a]263 </listitem>
264 </itemizedlist>
265
266 </sect3>
267
[e92c670e]268 <sect3 role="package">
269 <title>&lt;bigwig&gt;</title>
270
[1a629196]271 <para>
272 <application>&lt;bigwig&gt;</application> is a high-level programming
273 language for developing interactive Web services. Programs are compiled
274 into a conglomerate of lower-level technologies such as C code, HTTP,
275 HTML, JavaScript, and SSL, all running on top of a runtime system based
276 on an Apache Web server module. It is a descendant of the Mawl project
277 but is a completely new design and implementation with vastly expanded
278 ambitions. The <application>&lt;bigwig&gt;</application> language is
279 really a collection of tiny domain-specific languages focusing on
280 different aspects of interactive Web services. These contributing
281 languages are held together by a C-like skeleton language. Thus,
282 <application>&lt;bigwig&gt;</application> has the look and feel of
283 C-programs but with special data and control structures.
284 </para>
[e92c670e]285
286 <itemizedlist spacing="compact">
287 <listitem>
[1a629196]288 <para>
289 Project Home Page: <ulink
290 url="http://www.brics.dk/bigwig/"/>
291 </para>
[e92c670e]292 </listitem>
293 <listitem>
[1a629196]294 <para>
295 Download Location: <ulink
296 url="http://www.brics.dk/bigwig/download/"/>
297 </para>
[e92c670e]298 </listitem>
299 </itemizedlist>
300
301 </sect3>
302
303 <sect3 role="package">
304 <title>Bigloo</title>
305
[1a629196]306 <para>
307 <application>Bigloo</application> is a Scheme implementation devoted
308 to one goal: enabling Scheme based programming style where C(++) is
309 usually required. <application>Bigloo</application> attempts to make
310 Scheme practical by offering features usually presented by traditional
311 programming languages but not offered by Scheme and functional
312 programming. Bigloo compiles Scheme modules and delivers small and
313 fast stand-alone binary executables. It enables full connections
314 between Scheme and C programs, between Scheme and Java programs, and
315 between Scheme and C# programs.
316 </para>
[e92c670e]317
318 <itemizedlist spacing="compact">
319 <listitem>
[1a629196]320 <para>
321 Project Home Page: <ulink
322 url="http://www-sop.inria.fr/mimosa/fp/Bigloo/"/>
323 </para>
[e92c670e]324 </listitem>
325 <listitem>
[1a629196]326 <para>
327 Download Location: <ulink
328 url="ftp://ftp-sop.inria.fr/mimosa/fp/Bigloo/"/>
329 </para>
[e92c670e]330 </listitem>
331 </itemizedlist>
332
333 </sect3>
334
335 <sect3 role="package">
336 <title>C--</title>
337
[1a629196]338 <para>
339 <application>C--</application> is a portable assembly language that
340 can be generated by a front end and implemented by any of several code
341 generators. It serves as an interface between high-level compilers and
342 retargetable, optimizing code generators. Authors of front ends and
343 code generators can cooperate easily.
344 </para>
[e92c670e]345
346 <itemizedlist spacing="compact">
347 <listitem>
[1a629196]348 <para>
349 Project Home Page: <ulink
350 url="http://www.cminusminus.org/"/>
351 </para>
[e92c670e]352 </listitem>
353 <listitem>
[1a629196]354 <para>
355 Download Location: <ulink
356 url="http://www.cminusminus.org/code.html"/>
357 </para>
[e92c670e]358 </listitem>
359 </itemizedlist>
360
361 </sect3>
362
363 <sect3 role="package">
364 <title>Caml</title>
365
[1a629196]366 <para>
367 <application>Caml</application> is a general-purpose programming
368 language, designed with program safety and reliability in mind. It is
369 very expressive, yet easy to learn and use.
370 <application>Caml</application> supports functional, imperative, and
371 object-oriented programming styles. It has been developed and
372 distributed by INRIA, France's national research institute for
373 computer science, since 1985. The Objective Caml system is the main
374 implementation of the <application>Caml</application> language. It
375 features a powerful module system and a full-fledged object-oriented
376 layer. It comes with a native-code compiler that supports numerous
377 architectures, for high performance; a bytecode compiler, for increased
378 portability; and an interactive loop, for experimentation and rapid
379 development.
380 </para>
[e92c670e]381
382 <itemizedlist spacing="compact">
383 <listitem>
[1a629196]384 <para>
385 Project Home Page: <ulink
386 url="http://caml.inria.fr/"/>
387 </para>
[e92c670e]388 </listitem>
389 <listitem>
[1a629196]390 <para>
391 Download Location: <ulink
392 url="http://caml.inria.fr/pub/distrib/"/>
393 </para>
[e92c670e]394 </listitem>
395 </itemizedlist>
396
397 </sect3>
398
399 <sect3 role="package">
400 <title>Ch</title>
401
[1a629196]402 <para>
403 <application>Ch</application> is an embeddable C/C++ interpreter
404 for cross-platform scripting, shell programming, 2D/3D plotting,
405 numerical computing, and embedded scripting.
406 </para>
[e92c670e]407
408 <itemizedlist spacing="compact">
409 <listitem>
[1a629196]410 <para>
411 Project Home Page: <ulink
412 url="http://www.softintegration.com/"/>
413 </para>
[e92c670e]414 </listitem>
415 <listitem>
[1a629196]416 <para>
417 Download Location: <ulink
418 url="http://www.softintegration.com/products/chstandard/download/"/>
419 </para>
[e92c670e]420 </listitem>
421 </itemizedlist>
422
423 </sect3>
424
425 <sect3 role="package">
426 <title>Clean</title>
427
[1a629196]428 <para>
429 <application>Clean</application> is a general purpose,
430 state-of-the-art, pure and lazy functional programming language
431 designed for making real-world applications.
432 <application>Clean</application> is the only functional language in
433 the world which offers uniqueness typing. This type system makes it
434 possible in a pure functional language to incorporate destructive
435 updates of arbitrary data structures (including arrays) and to make
436 direct interfaces to the outside imperative world. The type system
437 makes it possible to develop efficient applications.
438 </para>
[e92c670e]439
440 <itemizedlist spacing="compact">
441 <listitem>
[1a629196]442 <para>
443 Project Home Page: <ulink
444 url="http://wiki.clean.cs.ru.nl/Clean"/>
445 </para>
[e92c670e]446 </listitem>
447 <listitem>
[1a629196]448 <para>
449 Download Location: <ulink
450 url="http://wiki.clean.cs.ru.nl/Download_Clean"/>
451 </para>
[e92c670e]452 </listitem>
453 </itemizedlist>
454
455 </sect3>
456
457 <sect3 role="package">
458 <title>Cyclone</title>
459
[1a629196]460 <para>
461 <application>Cyclone</application> is a programming language based on
462 C that is safe, meaning that it rules out programs that have buffer
463 overflows, dangling pointers, format string attacks, and so on.
464 High-level, type-safe languages, such as Java, Scheme, or ML also
465 provide safety, but they don't give the same control over data
466 representations and memory management that C does (witness the fact
467 that the run-time systems for these languages are usually written in
468 C.) Furthermore, porting legacy C code to these languages or
469 interfacing with legacy C libraries is a difficult and error-prone
470 process. The goal of <application>Cyclone</application> is to give
471 programmers the same low-level control and performance of C without
472 sacrificing safety, and to make it easy to port or interface with
473 legacy C code.
474 </para>
[e92c670e]475
476 <itemizedlist spacing="compact">
477 <listitem>
[1a629196]478 <para>
479 Project Home Page: <ulink
480 url="http://cyclone.thelanguage.org/"/>
481 </para>
[e92c670e]482 </listitem>
483 <listitem>
[1a629196]484 <para>
485 Download Location: <ulink
486 url="http://cyclone.thelanguage.org/wiki/Download/"/>
487 </para>
[e92c670e]488 </listitem>
489 </itemizedlist>
490
491 </sect3>
[5a7223f]492 <!-- Now comes with gcc
[e92c670e]493 <sect3 role="package">
494 <title>D</title>
495
[1a629196]496 <para>
497 <application>D</application> is a general purpose systems and
498 applications programming language. It is a higher level language than
499 C++, but retains the ability to write high performance code and
500 interface directly with the operating system APIs and with hardware.
501 <application>D</application> is well suited to writing medium to large
502 scale million line programs with teams of developers. It is easy to
503 learn, provides many capabilities to aid the programmer, and is well
504 suited to aggressive compiler optimization technology.
505 <application>D</application> is not a scripting language, nor an
506 interpreted language. It doesn't come with a VM, a religion, or an
507 overriding philosophy. It's a practical language for practical
508 programmers who need to get the job done quickly, reliably, and leave
509 behind maintainable, easy to understand code.
510 <application>D</application> is the culmination of decades of
511 experience implementing compilers for many diverse languages, and
512 attempting to construct large projects using those languages. It draws
513 inspiration from those other languages (most especially C++) and
514 tempers it with experience and real world practicality.
515 </para>
[e92c670e]516
517 <itemizedlist spacing="compact">
518 <listitem>
[1a629196]519 <para>
520 Project Home Page: <ulink
521 url="http://www.digitalmars.com/d/"/>
522 </para>
[e92c670e]523 </listitem>
524 <listitem>
[1a629196]525 <para>
526 Download Location: <ulink
527 url="ftp://ftp.digitalmars.com/"/>
528 </para>
[e92c670e]529 </listitem>
530 </itemizedlist>
531
532 </sect3>
[5a7223f]533 -->
[e92c670e]534 <sect3 role="package">
535 <title>DMDScript</title>
536
[1a629196]537 <para>
538 <application>DMDScript</application> is Digital Mars'
539 implementation of the ECMA 262 scripting language. Netscape's
540 implementation is called JavaScript, Microsoft's implementation is
541 called JScript. <application>DMDScript</application> is much faster
542 than other implementations, which you can verify with the included
543 benchmark.
544 </para>
[e92c670e]545
546 <itemizedlist spacing="compact">
547 <listitem>
[1a629196]548 <para>
549 Project Home Page: <ulink
550 url="http://www.digitalmars.com/dscript/index.html"/>
551 </para>
[e92c670e]552 </listitem>
553 <listitem>
[1a629196]554 <para>
555 Download Location: <ulink
556 url="ftp://ftp.digitalmars.com/"/>
557 </para>
[e92c670e]558 </listitem>
559 </itemizedlist>
560
561 </sect3>
562
563 <sect3 role="package">
564 <title>DotGNU Portable.NET</title>
565
[1a629196]566 <para>
567 <application>DotGNU Portable.NET</application> goal is to build a
568 suite of free software tools to build and execute .NET applications,
569 including a C# compiler, assembler, disassembler, and runtime engine.
570 While the initial target platform was GNU/Linux, it is also known to
571 run under Windows, Solaris, NetBSD, FreeBSD, and MacOS X. The runtime
572 engine has been tested on the x86, PowerPC, ARM, Sparc, PARISC, s390,
573 Alpha, and IA-64 processors.
574 <application>DotGNU Portable.NET</application> is part of the DotGNU
575 project, built in accordance with the requirements of the GNU Project.
576 DotGNU Portable.NET is focused on compatibility with the ECMA
577 specifications for CLI. There are other projects under the DotGNU
578 meta-project to build other necessary pieces of infrastructure, and to
579 explore non-CLI approaches to virtual machine implementation.
580 </para>
[e92c670e]581
582 <itemizedlist spacing="compact">
583 <listitem>
[1a629196]584 <para>
585 Project Home Page: <ulink
586 url="http://www.gnu.org/software/dotgnu/"/>
587 </para>
[e92c670e]588 </listitem>
589 <listitem>
[1a629196]590 <para>
591 Download Location: <ulink
592 url="http://www.gnu.org/software/dotgnu/pnet-packages.html"/>
593 </para>
[e92c670e]594 </listitem>
595 </itemizedlist>
596
597 </sect3>
598
[6ece1a0a]599 <sect3 role="package">
600 <title>Dylan</title>
601
[1a629196]602 <para>
603 <application>Dylan</application> is an advanced, object-oriented,
604 dynamic language which supports rapid program development. When needed,
605 programs can be optimized for more efficient execution by supplying
606 more type information to the compiler. Nearly all entities in
607 <application>Dylan</application> (including functions, classes, and
608 basic data types such as integers) are first class objects.
609 Additionally, <application>Dylan</application> supports multiple
610 inheritance, polymorphism, multiple dispatch, keyword arguments,
611 object introspection, macros, and many other advanced features...
612 --Peter Hinely.
613 </para>
[6ece1a0a]614
615 <itemizedlist spacing="compact">
616 <listitem>
[1a629196]617 <para>
618 Project Home Page: <ulink
619 url="http://www.opendylan.org/"/>
620 </para>
[6ece1a0a]621 </listitem>
622 <listitem>
[1a629196]623 <para>
624 Download Location: <ulink
625 url="http://opendylan.org/download/index.html"/>
626 </para>
[6ece1a0a]627 </listitem>
628 </itemizedlist>
629
630 </sect3>
631
[e92c670e]632 <sect3 role="package">
633 <title>E</title>
634
[1a629196]635 <para>
636 <application>E</application> is a secure distributed Java-based
637 pure-object platform and p2p scripting language. It has two parts: ELib
638 and the <application>E</application> Language. Elib provides the stuff
639 that goes on between objects. As a pure-Java library, ELib provides for
640 inter-process capability-secure distributed programming. Its
641 cryptographic capability protocol enables mutually suspicious Java
642 processes to cooperate safely, and its event-loop concurrency and
643 promise pipelining enable high performance deadlock free distributed
644 pure-object computing. The <application>E</application> Language can
645 be used to express what happens within an object. It provides a
646 convenient and familiar notation for the ELib computational model, so
647 you can program in one model rather than two. Under the covers, this
648 notation expands into Kernel-E, a minimalist lambda-language much like
649 Scheme or Smalltalk. Objects written in the
650 <application>E</application> language are only able to interact with
651 other objects according to ELib's semantics, enabling object
652 granularity intra-process security, including the ability to safely
653 run untrusted mobile code (such as caplets).
654 </para>
[e92c670e]655
656 <itemizedlist spacing="compact">
657 <listitem>
[1a629196]658 <para>
659 Project Home Page: <ulink
660 url="http://www.erights.org/"/>
661 </para>
[e92c670e]662 </listitem>
663 <listitem>
[1a629196]664 <para>
665 Download Location: <ulink
666 url="http://www.erights.org/download/"/>
667 </para>
[e92c670e]668 </listitem>
669 </itemizedlist>
670
671 </sect3>
672
[6ece1a0a]673 <sect3 role="package">
674 <title>elastiC</title>
675
[1a629196]676 <para>
677 <application>elastiC</application> is a portable high-level
678 object-oriented interpreted language with a C like syntax. Its main
679 characteristics are: open source, interpreted, has portable bytecode
680 compilation, dynamic typing, automatic real very fast garbage
681 collection, object oriented with meta-programming support (a la
682 Smalltalk), functional programming support (Scheme-like closures with
683 lexical scoping, and eval-like functionality), hierarchical namespaces,
684 a rich set of useful built-in types (dynamic arrays, dictionaries,
685 symbols, ...), extensible with C (you can add functions, types,
686 classes, methods, packages, ...), embeddable in C.
687 <application>elastiC</application> has been strongly influenced by C,
688 Smalltalk, Scheme and Python and tries to merge the best
689 characteristics of all these languages, while still coherently
690 maintaining its unique personality.
691 </para>
[6ece1a0a]692
693 <itemizedlist spacing="compact">
694 <listitem>
[1a629196]695 <para>
696 Project Home Page: <ulink
697 url="http://www.elasticworld.org/"/>
698 </para>
[6ece1a0a]699 </listitem>
700 <listitem>
[1a629196]701 <para>
702 Download Location: <ulink
703 url="http://www.elasticworld.org/download.html"/>
704 </para>
[6ece1a0a]705 </listitem>
706 </itemizedlist>
707
708 </sect3>
709
[e92c670e]710 <sect3 role="package">
711 <title>Erlang/OTP</title>
712
[1a629196]713 <para>
714 <application>Erlang/OTP</application> is a development environment
715 based on Erlang. Erlang is a programming language which has many
716 features more commonly associated with an operating system than with a
717 programming language: concurrent processes, scheduling, memory
718 management, distribution, networking, etc. The initial open-source
719 Erlang release contains the implementation of Erlang, as well as a
720 large part of Ericsson's middleware for building distributed
721 high-availability systems. Erlang is characterized by the following
722 features: robustness, soft real-time, hot code upgrades and
723 incremental code loading.
724 </para>
[e92c670e]725
726 <itemizedlist spacing="compact">
727 <listitem>
[1a629196]728 <para>
729 Project Home Page: <ulink
730 url="http://www.erlang.org/"/>
731 </para>
[e92c670e]732 </listitem>
733 <listitem>
[1a629196]734 <para>
735 Download Location: <ulink
736 url="http://www.erlang.org/download.html"/>
737 </para>
[e92c670e]738 </listitem>
739 </itemizedlist>
740
741 </sect3>
742
[9620b28]743 <sect3 role="package">
[67f2f78a]744 <title>Euphoria</title>
[9620b28]745
[1a629196]746 <para>
747 <application>Euphoria</application> is a simple, flexible, and
748 easy-to-learn programming language. It lets you quickly and easily
749 develop programs for Windows, DOS, Linux and FreeBSD. Euphoria was
750 first released in 1993. Since then Rapid Deployment Software has been
751 steadily improving it with the help of a growing number of
752 enthusiastic users. Although <application>Euphoria</application>
753 provides subscript checking, uninitialized variable checking and
754 numerous other run-time checks, it is extremely fast. People have used
755 it to develop high-speed DOS games, Windows GUI programs, and X Window
756 System programs. It is also very useful for CGI (Web-based)
757 programming.
758 </para>
[9620b28]759
760 <itemizedlist spacing="compact">
761 <listitem>
[1a629196]762 <para>
763 Project Home Page: <ulink
764 url="http://www.rapideuphoria.com/"/>
765 </para>
[9620b28]766 </listitem>
767 <listitem>
[1a629196]768 <para>
769 Download Location: <ulink
770 url="http://www.rapideuphoria.com/v20.htm"/>
771 </para>
[9620b28]772 </listitem>
773 </itemizedlist>
774
775 </sect3>
776
[6ece1a0a]777 <sect3 role="package">
778 <title>Felix</title>
779
[1a629196]780 <para>
781 <application>Felix</application> is an advanced Algol like
782 procedural programming language with a strong functional subsystem. It
783 features ML style static typing, first class functions, pattern
784 matching, garbage collection, polymorphism, and has built in support
785 for high performance microthreading, regular expressions and context
786 free parsing. The system provides a scripting harness so the language
787 can be used like other scripting languages such as Python and Perl,
788 but underneath it generates native code to obtain high performance. A
789 key feature of the system is that it uses the C/C++ object model, and
790 provides an advanced binding sublanguage to support integration with
791 C/C++ at both the source and object levels, both for embedding C/C++
792 data types and functions into <application>Felix</application>, and
793 for embedding <application>Felix</application> into existing C++
794 architectures. The <application>Felix</application> compiler is
795 written in Objective Caml, and generates ISO C++ which should compile
796 on any platform.
797 </para>
[6ece1a0a]798
799 <itemizedlist spacing="compact">
800 <listitem>
[1a629196]801 <para>
802 Project Home Page: <ulink
803 url="http://felix.sourceforge.net/"/>
804 </para>
[6ece1a0a]805 </listitem>
806 <listitem>
[1a629196]807 <para>
808 Download Location: <ulink
809 url="http://felix-lang.org/$/usr/local/lib/felix/tarballs"/>
810 </para>
[6ece1a0a]811 </listitem>
812 </itemizedlist>
813
814 </sect3>
815
816 <sect3 role="package">
817 <title>ferite</title>
818
[1a629196]819 <para>
820 <application>ferite</application> is a scripting language and engine
821 all in one manageable chunk. It is designed to be easily extended in
822 terms of API, and to be used within other applications making them
823 more configurable and useful to the end user. It has a syntax similar
824 to a number of other languages but remains clean and its own language.
825 </para>
[6ece1a0a]826
827 <itemizedlist spacing="compact">
828 <listitem>
[1a629196]829 <para>
830 Project Home Page: <ulink
831 url="http://www.ferite.org/"/>
832 </para>
[6ece1a0a]833 </listitem>
834 <listitem>
[1a629196]835 <para>
836 Download Location: <ulink
837 url="http://www.ferite.org/download.html"/>
838 </para>
[6ece1a0a]839 </listitem>
840 </itemizedlist>
841
842 </sect3>
843
844 <sect3 role="package">
845 <title>Forth</title>
846
[1a629196]847 <para>
848 <application>Forth</application> is a stack-based, extensible
849 language without type-checking. It is probably best known for its
850 "reverse Polish" (postfix) arithmetic notation, familiar to users of
851 Hewlett-Packard calculators. <application>Forth</application> is a
852 real-time programming language originally developed to control
853 telescopes. <application>Forth</application> has many unique features
854 and applications: it can compile itself into a new compiler,
855 reverse-polish coding, edit time error checking and compiling (similar
856 to BASIC), extremely efficient thread based language, can be used to
857 debug itself, extensible; thus can become what ever you need it to be.
858 The links below lead to the website of the Forth Interest Group (FIG),
859 a world-wide, non-profit organization for education in and the
860 promotion of the <application>Forth</application> computer language.
861 Another worthwhile website dedicated to the
862 <application>Forth</application> community is <ulink
863 url="http://wiki.forthfreak.net/"/>.
864 </para>
[6ece1a0a]865
866 <itemizedlist spacing="compact">
867 <listitem>
[1a629196]868 <para>
869 Project Home Page: <ulink
870 url="http://www.forth.org/"/>
871 </para>
[6ece1a0a]872 </listitem>
873 <listitem>
[1a629196]874 <para>
875 Download Location: <ulink
876 url="http://www.forth.org/compilers.html"/>
877 </para>
[6ece1a0a]878 </listitem>
879 </itemizedlist>
880
881 </sect3>
882
[e92c670e]883 <sect3 role="package">
884 <title>GNU Smalltalk</title>
885
[1a629196]886 <para>
887 <application>GNU Smalltalk</application> is a free implementation
888 of the Smalltalk-80 language which runs on most versions on Unix and,
889 in general, everywhere you can find a POSIX-compliance library. An
890 uncommon feature of it is that it is well-versed to scripting tasks
891 and headless processing. See <ulink url="
892 http://www.gnu.org/software/smalltalk/manual/html_node/Overview.html
893 "/> for a more detailed explanation of
894 <application>GNU Smalltalk</application>.
895 </para>
[e92c670e]896
897 <itemizedlist spacing="compact">
898 <listitem>
[1a629196]899 <para>
900 Project Home Page: <ulink
901 url="http://smalltalk.gnu.org/"/>
902 </para>
[e92c670e]903 </listitem>
904 <listitem>
[1a629196]905 <para>
906 Download Location: <ulink
907 url="&gnu-http;/smalltalk/"/>
908 </para>
[e92c670e]909 </listitem>
910 </itemizedlist>
911
912 </sect3>
913
914 <sect3 role="package">
915 <title>Haskell</title>
916
[1a629196]917 <para>
918 Haskell is a computer programming language. In particular, it is a
919 polymorphicly typed, lazy, purely functional language, quite different
920 from most other programming languages. The language is named for Haskell
921 Brooks Curry, whose work in mathematical logic serves as a foundation
922 for functional languages. Haskell is based on lambda calculus. There
923 are many implementations of Haskell, among them:
924 </para>
[e92c670e]925
926 <itemizedlist spacing="compact">
927 <listitem>
[1a629196]928 <para>
929 GHC: <ulink
930 url="http://www.haskell.org/ghc/"/>
931 </para>
[e92c670e]932 </listitem>
933 <listitem>
[1a629196]934 <para>
935 Helium: <ulink
936 url="http://www.cs.uu.nl/wiki/bin/view/Helium/WebHome"/>
937 </para>
[e92c670e]938 </listitem>
939 <listitem>
[1a629196]940 <para>
941 Hugs: <ulink
942 url="http://www.haskell.org/hugs/"/>
943 </para>
[e92c670e]944 </listitem>
945 <listitem>
[1a629196]946 <para>
947 nhc98: <ulink
948 url="http://www.haskell.org/nhc98/"/>
949 </para>
[e92c670e]950 </listitem>
951 </itemizedlist>
952
953 </sect3>
954
[665c751f]955 <sect3 role="package">
956 <title>HLA (High Level Assembly)</title>
957
[1a629196]958 <para>
959 The <application>HLA</application> language was developed as a tool
960 to help teach assembly language programming and machine organization to
961 University students at the University of California, Riverside. The
962 basic idea was to teach students assembly language programming by
963 leveraging their knowledge of high level languages like C/C++ and
964 Pascal/Delphi. At the same time, <application>HLA</application> was
965 designed to allow advanced assembly language programmers write more
966 readable and more powerful assembly language code.
967 </para>
[665c751f]968
969 <itemizedlist spacing="compact">
970 <listitem>
[1a629196]971 <para>
972 Project Home Page: <ulink
973 url="http://www.plantation-productions.com/Webster/HighLevelAsm/index.html"/>
974 </para>
[665c751f]975 </listitem>
976 <listitem>
[1a629196]977 <para>
978 Download Location: <ulink
979 url="http://www.plantation-productions.com/Webster/HighLevelAsm/dnld.html"/>
980 </para>
[665c751f]981 </listitem>
982 </itemizedlist>
983
984 </sect3>
985
[6ece1a0a]986 <sect3 role="package">
987 <title>Icon</title>
988
[1a629196]989 <para>
990 <application>Icon</application> is a high-level, general-purpose
991 programming language with a large repertoire of features for processing
992 data structures and character strings. It is an imperative, procedural
993 language with a syntax reminiscent of C and Pascal, but with semantics
994 at a much higher level.
995 </para>
[6ece1a0a]996
997 <itemizedlist spacing="compact">
998 <listitem>
[1a629196]999 <para>
1000 Project Home Page: <ulink
1001 url="http://www.cs.arizona.edu/icon/"/>
1002 </para>
[6ece1a0a]1003 </listitem>
1004 <listitem>
[1a629196]1005 <para>
1006 Download Location: <ulink
1007 url="ftp://ftp.cs.arizona.edu/icon/"/>
1008 </para>
[6ece1a0a]1009 </listitem>
1010 </itemizedlist>
1011
1012 </sect3>
1013
[b2a5557]1014 <sect3 role="package">
1015 <title>Io</title>
1016
[1a629196]1017 <para>
1018 <application>Io</application> is a small, prototype-based
1019 programming language. The ideas in <application>Io</application> are
1020 mostly inspired by <application>Smalltalk</application> (all values are
1021 objects), <application>Self</application> (prototype-based),
1022 <application>NewtonScript</application> (differential inheritance),
1023 <application>Act1</application> (actors and futures for concurrency),
1024 <application>LISP</application> (code is a runtime
1025 inspectable/modifiable tree) and <application>Lua</application>
1026 (small, embeddable).
1027 </para>
[b2a5557]1028
1029 <itemizedlist spacing="compact">
1030 <listitem>
[1a629196]1031 <para>
1032 Project Home Page: <ulink
1033 url="http://iolanguage.org"/>
1034 </para>
[b2a5557]1035 </listitem>
1036 <listitem>
[1a629196]1037 <para>
1038 Download Location: <ulink
1039 url="http://iobin.suspended-chord.info/"/>
1040 </para>
[b2a5557]1041 </listitem>
1042 </itemizedlist>
1043
1044 </sect3>
1045
[6ece1a0a]1046 <sect3 role="package">
1047 <title>J</title>
1048
[1a629196]1049 <para>
1050 <application>J</application> is a modern, high-level,
1051 general-purpose, high-performance programming language. It is portable
1052 and runs on Windows, Unix, Mac, and PocketPC handhelds, both as a GUI
1053 and in a console. True 64-bit <application>J</application> systems are
1054 available for XP64 or Linux64, on AMD64 or Intel EM64T platforms.
1055 <application>J</application> systems can be installed and distributed
1056 for free.
1057 </para>
[6ece1a0a]1058
1059 <itemizedlist spacing="compact">
1060 <listitem>
[1a629196]1061 <para>
1062 Project Home Page: <ulink
1063 url="http://www.jsoftware.com/"/>
1064 </para>
[6ece1a0a]1065 </listitem>
1066 <listitem>
[1a629196]1067 <para>
1068 Download Location: <ulink
1069 url="http://www.jsoftware.com/stable.htm"/>
1070 </para>
[6ece1a0a]1071 </listitem>
1072 </itemizedlist>
1073
1074 </sect3>
[68440d4d]1075
[e92c670e]1076 <sect3 role="package">
1077 <title>Jamaica</title>
1078
[1a629196]1079 <para>
1080 <application>Jamaica</application>, the JVM Macro Assembler, is an
1081 easy-to-learn and easy-to-use assembly language for JVM bytecode
1082 programming. It uses Java syntax to define a JVM class except for the
1083 method body that takes bytecode instructions, including
1084 <application>Jamaica</application>'s built-in macros. In
1085 <application>Jamaica</application>, bytecode instructions use mnemonics
1086 and symbolic names for all variables, parameters, data fields,
1087 constants, and labels.
1088 </para>
[e92c670e]1089
1090 <itemizedlist spacing="compact">
1091 <listitem>
[1a629196]1092 <para>
1093 Project Home Page: <ulink
1094 url="http://judoscript.org/jamaica.html"/>
1095 </para>
[e92c670e]1096 </listitem>
1097 <listitem>
[1a629196]1098 <para>
1099 Download Location: <ulink
1100 url="http://judoscript.org/download.html"/>
1101 </para>
[e92c670e]1102 </listitem>
1103 </itemizedlist>
1104
1105 </sect3>
[68440d4d]1106
[665c751f]1107 <sect3 role="package">
1108 <title>Joy</title>
1109
[1a629196]1110 <para>
1111 <application>Joy</application> is a purely functional programming
1112 language. Whereas all other functional programming languages are based
1113 on the application of functions to arguments,
1114 <application>Joy</application> is based on the composition of
1115 functions. All such functions take a stack as an argument and produce
1116 a stack as a value. Consequently much of <application>Joy</application>
1117 looks like ordinary postfix notation. However, in
1118 <application>Joy</application> a function can consume any number of
1119 parameters from the stack and leave any number of results on the stack.
1120 The concatenation of appropriate programs denotes the composition of
1121 the functions which the programs denote.
1122 </para>
[665c751f]1123
1124 <itemizedlist spacing="compact">
1125 <listitem>
[1a629196]1126 <para>
1127 Project Home Page: <ulink
1128 url="http://www.latrobe.edu.au/humanities/research/research-projects/past-projects/joy-programming-language"/>
1129 </para>
[665c751f]1130 </listitem>
1131 </itemizedlist>
1132
1133 </sect3>
[68440d4d]1134
[e92c670e]1135 <sect3 role="package">
1136 <title>Judo</title>
1137
[1a629196]1138 <para>
1139 <application>Judo</application> is a practical, functional scripting
1140 language. It is designed to cover the use cases of not only
1141 algorithmic/object-oriented/multi-threaded programming and Java
1142 scripting but also a number of major application domain tasks, such
1143 as scripting for JDBC, WSDL, ActiveX, OS, multiple file/data formats,
1144 etc. Despite its rich functionality, the base language is extremely
1145 simple, and domain support syntax is totally intuitive to domain
1146 experts, so that even though you have never programmed in
1147 <application>Judo</application>, you would have little trouble
1148 figuring out what the code does.
1149 </para>
[e92c670e]1150
1151 <itemizedlist spacing="compact">
1152 <listitem>
[1a629196]1153 <para>
1154 Project Home Page: <ulink
1155 url="http://judoscript.org/judo.html"/>
1156 </para>
[e92c670e]1157 </listitem>
1158 <listitem>
[1a629196]1159 <para>
1160 Download Location: <ulink
1161 url="http://judoscript.org/download.html"/>
1162 </para>
[e92c670e]1163 </listitem>
1164 </itemizedlist>
1165
1166 </sect3>
[68440d4d]1167
[e92c670e]1168 <sect3 role="package">
1169 <title>JWIG</title>
1170
[1a629196]1171 <para>
1172 <application>JWIG</application> is a Java-based high-level
1173 programming language for development of interactive Web services. It
1174 contains an advanced session model, a flexible mechanism for dynamic
1175 construction of XML documents, in particular XHTML, and a powerful API
1176 for simplifying use of the HTTP protocol and many other aspects of Web
1177 service programming. To support program development,
1178 <application>JWIG</application> provides a unique suite of highly
1179 specialized program analysers that at compile time verify for a given
1180 program that no runtime errors can occur while building documents or
1181 receiving form input, and that all documents being shown are valid
1182 according to the document type definition for XHTML 1.0. The main goal
1183 of the <application>JWIG</application> project is to simplify
1184 development of complex Web services, compared to alternatives, such
1185 as, Servlets, JSP, ASP, and PHP. <application>JWIG</application> is a
1186 descendant of the <application>&lt;bigwig&gt;</application> research
1187 language.
1188 </para>
[e92c670e]1189
1190 <itemizedlist spacing="compact">
1191 <listitem>
[1a629196]1192 <para>
1193 Project Home Page: <ulink
1194 url="http://www.brics.dk/JWIG/"/>
1195 </para>
[e92c670e]1196 </listitem>
1197 <listitem>
[1a629196]1198 <para>
1199 Download Location: <ulink
1200 url="http://www.brics.dk/JWIG/download.html"/>
1201 </para>
[e92c670e]1202 </listitem>
1203 </itemizedlist>
1204
1205 </sect3>
1206
[665c751f]1207 <sect3 role="package">
1208 <title>Lava</title>
1209
[1a629196]1210 <para>
1211 <application>Lava</application> is a name unfortunately chosen for
1212 several unrelated software development languages/projects. So it
1213 doesn't appear as though BLFS has a preference for one over another,
1214 the project web sites are listed below, without descriptions of the
1215 capabilities or features for any of them.
1216 </para>
[665c751f]1217
1218 <itemizedlist spacing="compact">
1219 <listitem>
[1a629196]1220 <para>
1221 Project Home Page: <ulink
1222 url="http://lavape.sourceforge.net/index.htm"/>
1223 </para>
[665c751f]1224 </listitem>
[a754ee2b]1225 <!-- URL broken
1226 <listitem>
[1a629196]1227 <para>
1228 Project Home Page: <ulink
1229 url="http://javalab.cs.uni-bonn.de/research/darwin/#The%20Lava%20Language"/>
1230 </para>
[665c751f]1231 </listitem>
[a754ee2b]1232 -->
[665c751f]1233 <listitem>
[1a629196]1234 <para>
1235 Project Home Page: <ulink
1236 url="http://mathias.tripod.com/IavaHomepage.html"/>
1237 </para>
[665c751f]1238 </listitem>
1239 </itemizedlist>
1240
1241 </sect3>
1242
1243 <sect3 role="package">
1244 <title>Mercury</title>
1245
[1a629196]1246 <para>
1247 <application>Mercury</application> is a new logic/functional
1248 programming language, which combines the clarity and expressiveness of
1249 declarative programming with advanced static analysis and error
1250 detection features. Its highly optimized execution algorithm delivers
1251 efficiency far in excess of existing logic programming systems, and
1252 close to conventional programming systems.
1253 <application>Mercury</application> addresses the problems of
1254 large-scale program development, allowing modularity, separate
1255 compilation, and numerous optimization/time trade-offs.
1256 </para>
[665c751f]1257
1258 <itemizedlist spacing="compact">
1259 <listitem>
[1a629196]1260 <para>
1261 Project Home Page: <ulink
1262 url="http://mercurylang.org/"/>
1263 </para>
[665c751f]1264 </listitem>
1265 <listitem>
[1a629196]1266 <para>
1267 Download Location: <ulink
1268 url="http://mercurylang.org/download.html"/>
1269 </para>
[665c751f]1270 </listitem>
1271 </itemizedlist>
1272
1273 </sect3>
1274
[9620b28]1275 <sect3 role="package">
[67f2f78a]1276 <title>Mono</title>
[9620b28]1277
[1a629196]1278 <para>
1279 <application>Mono</application> provides the necessary software to
1280 develop and run .NET client and server applications on Linux, Solaris,
1281 Mac OS X, Windows, and Unix. Sponsored by Novell, the
1282 <application>Mono</application> open source project has an active and
1283 enthusiastic contributing community and is positioned to become the
1284 leading choice for development of Linux applications.
1285 </para>
[9620b28]1286
1287 <itemizedlist spacing="compact">
1288 <listitem>
[1a629196]1289 <para>
1290 Project Home Page: <ulink
1291 url="http://www.mono-project.com/Main_Page"/>
1292 </para>
[9620b28]1293 </listitem>
1294 <listitem>
[1a629196]1295 <para>
1296 Download Location: <ulink
1297 url="http://ftp.novell.com/pub/mono/archive/"/>
1298 </para>
[9620b28]1299 </listitem>
1300 </itemizedlist>
1301
1302 </sect3>
1303
[665c751f]1304 <sect3 role="package">
1305 <title>MPD</title>
1306
[1a629196]1307 <para>
1308 <application>MPD</application> is a variant of the
1309 <application>SR</application> programming language.
1310 <application>SR</application> has a Pascal-like syntax and uses guarded
1311 commands for control statements. <application>MPD</application> has a
1312 C-like syntax and C-like control statements. However, the main
1313 components of the two languages are the same: resources, globals,
1314 operations, procs, procedures, processes, and virtual machines.
1315 Moreover, <application>MPD</application> supports the same variety of
1316 concurrent programming mechanisms as <application>SR</application>:
1317 co statements, semaphores, call/send/forward invocations, and receive
1318 and input statements.
1319 </para>
[665c751f]1320
1321 <itemizedlist spacing="compact">
1322 <listitem>
[1a629196]1323 <para>
1324 Project Home Page: <ulink
1325 url="http://www.cs.arizona.edu/mpd/"/>
1326 </para>
[665c751f]1327 </listitem>
1328 <listitem>
[1a629196]1329 <para>
1330 Download Location: <ulink
1331 url="http://www.cs.arizona.edu/mpd/download/"/>
1332 </para>
[665c751f]1333 </listitem>
1334 </itemizedlist>
1335
1336 </sect3>
1337
1338 <sect3 role="package">
1339 <title>Nemerle</title>
1340
[1a629196]1341 <para>
1342 <application>Nemerle</application> is a high-level statically-typed
1343 programming language for the .NET platform. It offers functional,
1344 object-oriented and imperative features. It has a simple C#-like syntax
1345 and a powerful meta-programming system. Features that come from the
1346 functional land are variants, pattern matching, type inference and
1347 parameter polymorphism (aka generics). The meta-programming system
1348 allows great compiler extensibility, embedding domain specific
1349 languages, partial evaluation and aspect-oriented programming.
1350 </para>
[665c751f]1351
1352 <itemizedlist spacing="compact">
1353 <listitem>
[1a629196]1354 <para>
1355 Project Home Page: <ulink
1356 url="http://nemerle.org/About"/>
1357 </para>
[665c751f]1358 </listitem>
1359 <listitem>
[1a629196]1360 <para>
1361 Download Location: <ulink
1362 url="http://nemerle.org/Downloads"/>
1363 </para>
[665c751f]1364 </listitem>
1365 </itemizedlist>
1366
1367 </sect3>
1368
1369 <sect3 role="package">
1370 <title>Octave</title>
1371
[1a629196]1372 <para>
1373 GNU <application>Octave</application> is a high-level language,
1374 primarily intended for numerical computations. It provides a convenient
1375 command line interface for solving linear and nonlinear problems
1376 numerically, and for performing other numerical experiments using a
1377 language that is mostly compatible with Matlab. It may also be used as
1378 a batch-oriented language. <application>Octave</application> has
1379 extensive tools for solving common numerical linear algebra problems,
1380 finding the roots of nonlinear equations, integrating ordinary
1381 functions, manipulating polynomials, and integrating ordinary
1382 differential and differential-algebraic equations. It is easily
1383 extensible and customizable via user-defined functions written in
1384 <application>Octave</application>'s own language, or using dynamically
1385 loaded modules written in C++, C, Fortran, or other languages.
1386 </para>
[665c751f]1387
1388 <itemizedlist spacing="compact">
1389 <listitem>
[1a629196]1390 <para>
1391 Project Home Page: <ulink
1392 url="http://www.gnu.org/software/octave/"/>
1393 </para>
[665c751f]1394 </listitem>
1395 <listitem>
[1a629196]1396 <para>
1397 Download Location: <ulink
1398 url="http://www.gnu.org/software/octave/download.html"/>
1399 </para>
[665c751f]1400 </listitem>
1401 </itemizedlist>
1402
1403 </sect3>
1404
1405 <sect3 role="package">
1406 <title>OO2C (Optimizing Oberon-2 Compiler)</title>
1407
[1a629196]1408 <para>
1409 <application>OO2C</application> is an Oberon-2 development platform.
1410 It consists of an optimizing compiler, a number of related tools, a
1411 set of standard library modules and a reference manual. Oberon-2 is
1412 a general-purpose programming language in the tradition of Pascal and
1413 Modula-2. Its most important features are block structure, modularity,
1414 separate compilation, static typing with strong type checking (also
1415 across module boundaries) and type extension with type-bound
1416 procedures. Type extension makes Oberon-2 an object-oriented language.
1417 </para>
[665c751f]1418
1419 <itemizedlist spacing="compact">
1420 <listitem>
[1a629196]1421 <para>
1422 Project Home Page: <ulink
1423 url="http://sourceforge.net/projects/ooc/"/>
1424 </para>
[665c751f]1425 </listitem>
1426 <listitem>
[1a629196]1427 <para>
1428 Download Location: <ulink
1429 url="&sourceforge-dl;/ooc/"/>
1430 </para>
[665c751f]1431 </listitem>
1432 </itemizedlist>
1433
1434 </sect3>
1435
[9620b28]1436 <sect3 role="package">
[67f2f78a]1437 <title>Ordered Graph Data Language (OGDL)</title>
[9620b28]1438
[1a629196]1439 <para>
1440 <application>OGDL</application> is a structured textual format that
1441 represents information in the form of graphs, where the nodes are
1442 strings and the arcs or edges are spaces or indentation.
1443 </para>
[9620b28]1444
1445 <itemizedlist spacing="compact">
1446 <listitem>
[1a629196]1447 <para>
1448 Project Home Page: <ulink
1449 url="http://ogdl.sourceforge.net/"/>
1450 </para>
[9620b28]1451 </listitem>
1452 <listitem>
[1a629196]1453 <para>
1454 Download Location: <ulink
1455 url="&sourceforge-dl;/ogdl/"/>
1456 </para>
[9620b28]1457 </listitem>
1458 </itemizedlist>
1459
1460 </sect3>
1461
[e92c670e]1462 <sect3 role="package">
[665c751f]1463 <title>Pike</title>
[e92c670e]1464
[1a629196]1465 <para>
1466 <application>Pike</application> is a dynamic programming language
1467 with a syntax similar to Java and C. It is simple to learn, does not
1468 require long compilation passes and has powerful built-in data types
1469 allowing simple and really fast data manipulation. Pike is released
1470 under the GNU GPL, GNU LGPL and MPL.
1471 </para>
[e92c670e]1472
1473 <itemizedlist spacing="compact">
1474 <listitem>
[1a629196]1475 <para>
1476 Project Home Page: <ulink
1477 url="http://pike.ida.liu.se/"/>
1478 </para>
[e92c670e]1479 </listitem>
1480 <listitem>
[1a629196]1481 <para>
1482 Download Location: <ulink
1483 url="http://pike.ida.liu.se/download/pub/pike"/>
1484 </para>
[e92c670e]1485 </listitem>
1486 </itemizedlist>
1487
1488 </sect3>
[665c751f]1489
1490 <sect3 role="package">
1491 <title>Pyrex</title>
1492
[1a629196]1493 <para>
1494 <application>Pyrex</application> is a language specially designed
[665c751f]1495 for writing Python extension modules. It's designed to bridge the gap
1496 between the nice, high-level, easy-to-use world of
1497 <application>Python</application> and the messy, low-level world of C.
1498 <application>Pyrex</application> lets you write code that mixes
1499 <application>Python</application> and C data types any way you want, and
1500 compiles it into a C extension for
[1a629196]1501 <application>Python</application>.
1502 </para>
[665c751f]1503
1504 <itemizedlist spacing="compact">
1505 <listitem>
[1a629196]1506 <para>
1507 Project Home Page: <ulink
1508 url="http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/"/>
1509 </para>
[665c751f]1510 </listitem>
1511 </itemizedlist>
1512
1513 </sect3>
1514
1515 <sect3 role="package">
1516 <title>Q</title>
1517
[1a629196]1518 <para>
1519 <application>Q</application> is a functional programming language
1520 based on term rewriting. Thus, a <application>Q</application> program or
1521 <quote>script</quote> is simply a collection of equations which are used
1522 to evaluate expressions in a symbolic fashion. The equations establish
1523 algebraic identities and are interpreted as rewriting rules in order to
1524 reduce expressions to <quote>normal forms</quote>.
1525 </para>
[665c751f]1526
1527 <itemizedlist spacing="compact">
1528 <listitem>
[1a629196]1529 <para>
1530 Project Home Page: <ulink
1531 url="http://q-lang.sourceforge.net/"/>
1532 </para>
[665c751f]1533 </listitem>
1534 <listitem>
[1a629196]1535 <para>
1536 Download Location: <ulink
1537 url="&sourceforge-dl;/q-lang/"/>
1538 </para>
[665c751f]1539 </listitem>
1540 </itemizedlist>
1541
1542 </sect3>
1543
[9620b28]1544 <sect3 role="package">
[67f2f78a]1545 <title>R</title>
[9620b28]1546
[1a629196]1547 <para>
1548 <application>R</application> is a language and environment for
1549 statistical computing and graphics. It is a GNU project similar to the
1550 <application>S</application> language and environment which was
1551 developed at Bell Laboratories (formerly AT&amp;T, now Lucent
1552 Technologies) by John Chambers and colleagues.
1553 <application>R</application> can be considered as a different
1554 implementation of <application>S</application>. There are some
1555 important differences, but much code written for
1556 <application>S</application> runs unaltered under
1557 <application>R</application>. <application>R</application> provides a
1558 wide variety of statistical (linear and nonlinear modelling, classical
1559 statistical tests, time-series analysis, classification, clustering,
1560 ...) and graphical techniques, and is highly extensible. The
1561 <application>S</application> language is often the vehicle of choice
1562 for research in statistical methodology, and
1563 <application>R</application> provides an Open Source route to
1564 participation in that activity.
1565 </para>
[9620b28]1566
1567 <itemizedlist spacing="compact">
1568 <listitem>
[1a629196]1569 <para>
1570 Project Home Page: <ulink
1571 url="http://www.r-project.org/"/>
1572 </para>
[9620b28]1573 </listitem>
1574 <listitem>
[1a629196]1575 <para>
1576 Download Location: <ulink
1577 url="http://cran.r-project.org/mirrors.html"/>
1578 </para>
[9620b28]1579 </listitem>
1580 </itemizedlist>
1581
1582 </sect3>
1583
[e92c670e]1584 <sect3 role="package">
1585 <title>Regina Rexx</title>
1586
[1a629196]1587 <para>
1588 <application>Regina</application> is a Rexx interpreter that has been
1589 ported to most Unix platforms (Linux, FreeBSD, Solaris, AIX, HP-UX,
1590 etc.) and also to OS/2, eCS, DOS, Win9x/Me/NT/2k/XP, Amiga, AROS,
1591 QNX4.x, QNX6.x BeOS, MacOS X, EPOC32, AtheOS, OpenVMS, SkyOS and
1592 OpenEdition. Rexx is a programming language that was designed to be
1593 easy to use for inexperienced programmers yet powerful enough for
1594 experienced users. It is also a language ideally suited as a macro
1595 language for other applications.
1596 </para>
[e92c670e]1597
1598 <itemizedlist spacing="compact">
1599 <listitem>
[1a629196]1600 <para>
1601 Project Home Page: <ulink
1602 url="http://regina-rexx.sourceforge.net/"/>
1603 </para>
[e92c670e]1604 </listitem>
1605 <listitem>
[1a629196]1606 <para>
1607 Download Location: <ulink
1608 url="&sourceforge-dl;/regina-rexx"/>
1609 </para>
[e92c670e]1610 </listitem>
1611 </itemizedlist>
1612
1613 </sect3>
1614
1615 <sect3 role="package">
1616 <title>Small Device C Compiler (SDCC)</title>
1617
[1a629196]1618 <para>
1619 <application>SDCC</application> is a Freeware, retargetable,
1620 optimizing ANSI-C compiler that targets the Intel 8051, Maxim 80DS390
1621 and the Zilog Z80 based MCUs. Work is in progress on supporting the
1622 Motorola 68HC08 as well as Microchip PIC16 and PIC18 series. The entire
1623 source code for the compiler is distributed under GPL.
1624 </para>
[e92c670e]1625
1626 <itemizedlist spacing="compact">
1627 <listitem>
[1a629196]1628 <para>
1629 Project Home Page: <ulink
1630 url="http://sdcc.sourceforge.net/"/>
1631 </para>
[e92c670e]1632 </listitem>
1633 <listitem>
[1a629196]1634 <para>
1635 Download Location: <ulink
1636 url="http://sdcc.sourceforge.net/snap.php#Source"/>
1637 </para>
[e92c670e]1638 </listitem>
1639 </itemizedlist>
1640
1641 </sect3>
1642
[6ece1a0a]1643 <sect3 role="package">
1644 <title>SmartEiffel (The GNU Eiffel Compiler)</title>
1645
[1a629196]1646 <para>
1647 <application>SmartEiffel</application> claims to be <quote>the fastest
1648 and the slimmest multi-platform Eiffel compiler on Earth</quote>.
1649 Eiffel is an object-oriented programming language which emphasizes the
1650 production of robust software. Its syntax is keyword-oriented in the
1651 ALGOL and Pascal tradition. Eiffel is strongly statically typed, with
1652 automatic memory management (typically implemented by garbage
1653 collection). Distinguishing characteristics of Eiffel include Design
1654 by contract (DbC), liberal use of inheritance including multiple
1655 inheritance, a type system handling both value and reference semantics,
1656 and generic classes. Eiffel has a unified type system&mdash;all types
1657 in Eiffel are classes, so it is possible to create subclasses of the
1658 basic classes such as INTEGER. Eiffel has operator overloading,
1659 including the ability to define new operators, but does not have
1660 method overloading.
1661 </para>
[6ece1a0a]1662
1663 <itemizedlist spacing="compact">
1664 <listitem>
[1a629196]1665 <para>
1666 Project Home Page: <ulink
1667 url="http://smarteiffel.loria.fr/"/>
1668 </para>
[6ece1a0a]1669 </listitem>
1670 <listitem>
[1a629196]1671 <para>
1672 Download Location: <ulink
1673 url="https://gforge.inria.fr/frs/?group_id=184"/>
1674 </para>
[6ece1a0a]1675 </listitem>
1676 </itemizedlist>
1677
1678 </sect3>
1679
[665c751f]1680 <sect3 role="package">
1681 <title>Squeak</title>
1682
[1a629196]1683 <para>
1684 <application>Squeak</application> is an open, highly-portable
1685 Smalltalk implementation whose virtual machine is written entirely in
1686 Smalltalk, making it easy to debug, analyze, and change. To achieve
1687 practical performance, a translator produces an equivalent C program
1688 whose performance is comparable to commercial Smalltalks. Other
1689 noteworthy aspects of <application>Squeak</application> include:
1690 real-time sound and music synthesis written entirely in Smalltalk,
1691 extensions of BitBlt to handle color of any depth and anti-aliased
1692 image rotation and scaling, network access support that allows simple
1693 construction of servers and other useful facilities, it runs
1694 bit-identical on many platforms (Windows, Mac, Unix, and others), a
1695 compact object format that typically requires only a single word of
1696 overhead per object and a simple yet efficient incremental garbage
1697 collector for 32-bit direct pointers efficient bulk-mutation of
1698 objects.
1699 </para>
[665c751f]1700
1701 <itemizedlist spacing="compact">
1702 <listitem>
[1a629196]1703 <para>
1704 Project Home Page: <ulink
1705 url="http://www.squeak.org/"/>
1706 </para>
[665c751f]1707 </listitem>
1708 <listitem>
[1a629196]1709 <para>
1710 Download Location: <ulink
1711 url="http://www.squeak.org/Download/"/>
1712 </para>
[665c751f]1713 </listitem>
1714 </itemizedlist>
1715
1716 </sect3>
1717
1718 <sect3 role="package">
1719 <title>SR (Synchronizing Resources)</title>
1720
[1a629196]1721 <para>
1722 <application>SR</application> is a language for writing concurrent
1723 programs. The main language constructs are resources and operations.
1724 Resources encapsulate processes and variables they share; operations
1725 provide the primary mechanism for process interaction.
1726 <application>SR</application> provides a novel integration of the
1727 mechanisms for invoking and servicing operations. Consequently, all of
1728 local and remote procedure call, rendezvous, message passing, dynamic
1729 process creation, multicast, and semaphores are supported.
1730 <application>SR</application> also supports shared global variables and
1731 operations.
1732 </para>
[665c751f]1733
1734 <itemizedlist spacing="compact">
1735 <listitem>
[1a629196]1736 <para>
1737 Project Home Page: <ulink
1738 url="http://www.cs.arizona.edu/sr/index.html"/>
1739 </para>
[665c751f]1740 </listitem>
1741 <listitem>
[1a629196]1742 <para>
1743 Download Location: <ulink
1744 url="ftp://ftp.cs.arizona.edu/sr/"/>
1745 </para>
[665c751f]1746 </listitem>
1747 </itemizedlist>
1748
1749 </sect3>
1750
[e92c670e]1751 <sect3 role="package">
1752 <title>Standard ML</title>
1753
[1a629196]1754 <para>
1755 Standard ML is a safe, modular, strict, functional, polymorphic
1756 programming language with compile-time type checking and type
1757 inference, garbage collection, exception handling, immutable data
1758 types and updatable references, abstract data types, and parametric
1759 modules. It has efficient implementations and a formal definition with
1760 a proof of soundness. There are many implementations of Standard ML,
1761 among them:
1762 </para>
[e92c670e]1763
1764 <itemizedlist spacing="compact">
1765 <listitem>
[1a629196]1766 <para>
1767 ML Kit: <ulink
1768 url="http://www.it-c.dk/research/mlkit/"/>
1769 </para>
[e92c670e]1770 </listitem>
1771 <listitem>
[1a629196]1772 <para>
1773 MLton: <ulink
1774 url="http://mlton.org/"/>
1775 </para>
[e92c670e]1776 </listitem>
1777 <listitem>
[1a629196]1778 <para>
1779 Poly/ML: <ulink
1780 url="http://www.polyml.org/"/>
1781 </para>
[e92c670e]1782 </listitem>
1783 <listitem>
[1a629196]1784 <para>
1785 Standard ML of New Jersey: <ulink
1786 url="http://www.smlnj.org/"/>
1787 </para>
[e92c670e]1788 </listitem>
1789 </itemizedlist>
1790
1791 </sect3>
1792
1793 <sect3 role="package">
1794 <title>Steel Bank Common Lisp (SBCL)</title>
1795
[1a629196]1796 <para>
1797 <application>SBCL</application> is an open source (free software)
1798 compiler and runtime system for ANSI Common Lisp. It provides an
1799 interactive environment including an integrated native compiler, a
1800 debugger, and many extensions. <application>SBCL</application> runs
1801 on a number of platforms.
1802 </para>
[e92c670e]1803
1804 <itemizedlist spacing="compact">
1805 <listitem>
[1a629196]1806 <para>
1807 Project Home Page: <ulink
1808 url="http://www.sbcl.org/"/>
1809 </para>
[e92c670e]1810 </listitem>
1811 <listitem>
[1a629196]1812 <para>
1813 Download Location: <ulink
1814 url="&sourceforge-dl;/sbcl/"/>
1815 </para>
[e92c670e]1816 </listitem>
1817 </itemizedlist>
1818
1819 </sect3>
1820
1821 <sect3 role="package">
1822 <title>Tiny C Compiler (TCC)</title>
1823
[1a629196]1824 <para>
1825 <application>Tiny C Compiler</application> is a small C compiler
1826 that can be used to compile and execute C code everywhere, for example
1827 on rescue disks (about 100KB for x86 TCC executable, including C
1828 preprocessor, C compiler, assembler and linker).
1829 <application>TCC</application> is fast. It generates optimized x86
1830 code, has no byte code overhead and compiles, assembles and links
1831 several times faster than <application>GCC</application>.
1832 <application>TCC</application> is versatile, any C dynamic library can
1833 be used directly. It is heading toward full ISOC99 compliance and can
1834 compile itself. The compiler is safe as it includes an optional memory
1835 and bound checker. Bound checked code can be mixed freely with
1836 standard code. <application>TCC</application> compiles and executes
1837 C source directly. No linking or assembly necessary. A full C
1838 preprocessor and GNU-like assembler is included. It is C script
1839 supported; just add <quote>#!/usr/local/bin/tcc -run</quote> on the
1840 first line of your C source, and execute it directly from the command
1841 line. With libtcc, you can use <application>TCC</application> as a
1842 backend for dynamic code generation.
1843 </para>
[e92c670e]1844
1845 <itemizedlist spacing="compact">
1846 <listitem>
[1a629196]1847 <para>
1848 Project Home Page: <ulink
1849 url="http://bellard.org/tcc/"/>
1850 </para>
[e92c670e]1851 </listitem>
1852 <listitem>
[1a629196]1853 <para>
1854 Download Location: <ulink
1855 url="http://download.savannah.gnu.org/releases-noredirect/tinycc/"/>
1856 </para>
[e92c670e]1857 </listitem>
1858 </itemizedlist>
1859
1860 </sect3>
1861
[665c751f]1862 <sect3 role="package">
1863 <title>TinyCOBOL</title>
1864
[1a629196]1865 <para>
1866 <application>TinyCOBOL</application> is a COBOL compiler being
1867 developed by members of the free software community. The mission is to
1868 produce a COBOL compiler based on the COBOL 85 standards.
1869 <application>TinyCOBOL</application> is available for the Intel
1870 architecture (IA32) and compatible processors on the following
1871 platforms: BeOS, FreeBSD, Linux and MinGW on Windows.
1872 </para>
[665c751f]1873
1874 <itemizedlist spacing="compact">
1875 <listitem>
[1a629196]1876 <para>
1877 Project Home Page: <ulink
1878 url="http://sourceforge.net/projects/tiny-cobol/"/>
1879 </para>
[665c751f]1880 </listitem>
1881 <listitem>
[1a629196]1882 <para>
1883 Download Location: <ulink
1884 url="&sourceforge-dl;/tiny-cobol/"/>
1885 </para>
[665c751f]1886 </listitem>
1887 </itemizedlist>
1888
1889 </sect3>
1890
1891 <sect3 role="package">
1892 <title>Yorick</title>
1893
[1a629196]1894 <para>
1895 <application>Yorick</application> is an interpreted programming
1896 language, designed for postprocessing or steering large scientific
1897 simulation codes. Smaller scientific simulations or calculations, such
1898 as the flow past an airfoil or the motion of a drumhead, can be
1899 written as standalone yorick programs. The language features a compact
1900 syntax for many common array operations, so it processes large arrays
1901 of numbers very efficiently. Unlike most interpreters, which are
1902 several hundred times slower than compiled code for number crunching,
1903 <application>Yorick</application> can approach to within a factor of
1904 four or five of compiled speed for many common tasks. Superficially,
1905 <application>Yorick</application> code resembles C code, but
1906 <application>Yorick</application> variables are never explicitly
1907 declared and have a dynamic scoping similar to many Lisp dialects. The
1908 <quote>unofficial</quote> home page for
1909 <application>Yorick</application> can be found at <ulink
1910 url="http://www.maumae.net/yorick"/>.
1911 </para>
[665c751f]1912
1913 <itemizedlist spacing="compact">
1914 <listitem>
[1a629196]1915 <para>
1916 Project Home Page: <ulink
1917 url="http://yorick.sourceforge.net/index.php"/>
1918 </para>
[665c751f]1919 </listitem>
1920 <listitem>
[1a629196]1921 <para>
1922 Download Location: <ulink
1923 url="http://sourceforge.net/projects/yorick/files/"/>
1924 </para>
[665c751f]1925 </listitem>
1926 </itemizedlist>
1927
1928 </sect3>
1929
1930 <sect3 role="package">
1931 <title>ZPL</title>
1932
[1a629196]1933 <para>
1934 <application>ZPL</application> is an array programming language
1935 designed from first principles for fast execution on both sequential
1936 and parallel computers. It provides a convenient high-level programming
1937 medium for supercomputers and large-scale clusters with efficiency
1938 comparable to hand-coded message passing. It is the perfect alternative
1939 to using a sequential language like C or Fortran and a message passing
1940 library like MPI.
1941 </para>
[665c751f]1942
1943 <itemizedlist spacing="compact">
1944 <listitem>
[1a629196]1945 <para>
1946 Project Home Page: <ulink
1947 url="http://www.cs.washington.edu/research/zpl/home/index.html"/>
1948 </para>
[665c751f]1949 </listitem>
1950 <listitem>
[1a629196]1951 <para>
1952 Download Location: <ulink
1953 url="http://www.cs.washington.edu/research/zpl/download/download.html"/>
1954 </para>
[665c751f]1955 </listitem>
1956 </itemizedlist>
1957
1958 </sect3>
1959
[67f2f78a]1960 </sect2>
1961
1962 <sect2>
1963 <title>Programming Libraries and Bindings</title>
1964
[38e71da]1965 <sect3 role="package">
1966 <title>Byte Code Engineering Library (BCEL)</title>
1967
[1a629196]1968 <para>
1969 <application>BECL</application> is intended to give users a
1970 convenient possibility to analyze, create, and manipulate (binary) Java
1971 class files (those ending with
1972 <filename class='extension'>.class</filename>). Classes are represented
1973 by objects which contain all the symbolic information of the given
1974 class: methods, fields and byte code instructions, in particular. Such
1975 objects can be read from an existing file, be transformed by a program
1976 (e.g., a class loader at run-time) and dumped to a file again. An even
1977 more interesting application is the creation of classes from scratch
1978 at run-time. The Byte Code Engineering Library may be also useful if
1979 you want to learn about the Java Virtual Machine (JVM) and the format
1980 of Java <filename class='extension'>.class</filename> files.
1981 <application>BCEL</application> is already being used successfully in
1982 several projects such as compilers, optimizers, obfuscators, code
1983 generators and analysis tools.
1984 </para>
[38e71da]1985
1986 <itemizedlist spacing="compact">
1987 <listitem>
[1a629196]1988 <para>
1989 Project Home Page: <ulink
1990 url="http://jakarta.apache.org/bcel/index.html"/>
1991 </para>
[38e71da]1992 </listitem>
1993 <listitem>
[1a629196]1994 <para>
1995 Download Location: <ulink
1996 url="http://archive.apache.org/dist/jakarta/bcel/"/>
1997 </para>
[38e71da]1998 </listitem>
1999 </itemizedlist>
2000
2001 </sect3>
2002
[6ece1a0a]2003 <sect3 role="package">
2004 <title>Choco</title>
2005
[1a629196]2006 <para>
2007 <application>Choco</application> is a Java library for constraint
2008 satisfaction problems (CSP), constraint programming (CP) and
2009 explanation-based constraint solving (e-CP). It is built on a
2010 event-based propagation mechanism with backtrackable structures.
2011 </para>
[6ece1a0a]2012
2013 <itemizedlist spacing="compact">
2014 <listitem>
[1a629196]2015 <para>
2016 Project Home Page: <ulink
2017 url="http://sourceforge.net/projects/choco/"/>
2018 </para>
[6ece1a0a]2019 </listitem>
2020 <listitem>
[1a629196]2021 <para>
2022 Download Location: <ulink
2023 url="http://choco.sourceforge.net/download.html"/>
2024 </para>
[6ece1a0a]2025 </listitem>
2026 </itemizedlist>
2027
2028 </sect3>
2029
[9620b28]2030 <sect3 role="package">
2031 <title>GOB (GObject Builder)</title>
2032
[1a629196]2033 <para>
2034 <application>GOB</application> (<application>GOB2</application>
2035 anyway) is a preprocessor for making GObjects with inline C code so
2036 that generated files are not edited. Syntax is inspired by
2037 <application>Java</application> and <application>Yacc</application> or
2038 <application>Lex</application>. The implementation is intentionally
2039 kept simple, and no C actual code parsing is done.
2040 </para>
[9620b28]2041
2042 <itemizedlist spacing="compact">
2043 <listitem>
[1a629196]2044 <para>
2045 Project Home Page: <ulink
2046 url="http://www.5z.com/jirka/gob.html"/>
2047 </para>
[9620b28]2048 </listitem>
2049 <listitem>
[1a629196]2050 <para>
2051 Download Location: <ulink
2052 url="http://ftp.5z.com/pub/gob/"/>
2053 </para>
[9620b28]2054 </listitem>
2055 </itemizedlist>
2056
2057 </sect3>
2058
2059 <sect3 role="package">
2060 <title>GTK+/GNOME Language Bindings (wrappers)</title>
2061
[1a629196]2062 <para>
2063 <application>GTK+</application>/<application>GNOME</application>
2064 language bindings allow <application>GTK+</application> to be used from
2065 other programming languages, in the style of those languages.
2066 </para>
[9620b28]2067
2068 <itemizedlist spacing="compact">
2069 <listitem>
[1a629196]2070 <para>
2071 Project Home Page: <ulink
2072 url="http://www.gtk.org/language-bindings.php"/>
2073 </para>
[9620b28]2074 </listitem>
2075 </itemizedlist>
2076
2077 <sect4 role="package">
2078 <title>Java-GNOME</title>
2079
[1a629196]2080 <para>
2081 <application>Java-GNOME</application> is a set of Java bindings
2082 for the <application>GNOME</application> and
2083 <application>GTK+</application> libraries that allow
2084 <application>GNOME</application> and <application>GTK+</application>
2085 applications to be written in Java. The
2086 <application>Java-GNOME</application> API has been carefully designed
2087 to be easy to use, maintaining a good OO paradigm, yet still wrapping
2088 the entire functionality of the underlying libraries.
2089 <application>Java-GNOME</application> can be used with the
2090 <application>Eclipse</application> development environment and Glade
2091 user interface designer to create applications with ease.
2092 </para>
[9620b28]2093
2094 <itemizedlist spacing="compact">
2095 <listitem>
[1a629196]2096 <para>
2097 Project Home Page: <ulink
2098 url="http://java-gnome.sourceforge.net/4.0/"/>
2099 </para>
[9620b28]2100 </listitem>
2101 <listitem>
[1a629196]2102 <para>
2103 Download Location: <ulink
2104 url="http://java-gnome.sourceforge.net/4.0/get/"/>
2105 </para>
[9620b28]2106 </listitem>
2107 </itemizedlist>
2108
2109 </sect4>
2110
2111 <sect4 role="package">
2112 <title>gtk2-perl</title>
2113
[1a629196]2114 <para>
2115 <application>gtk2-perl</application> is the collective name for
2116 a set of Perl bindings for <application>GTK+</application> 2.x and
2117 various related libraries. These modules make it easy to write
2118 <application>GTK</application> and <application>GNOME</application>
2119 applications using a natural, Perlish, object-oriented syntax.
2120 </para>
[9620b28]2121
2122 <itemizedlist spacing="compact">
2123 <listitem>
[1a629196]2124 <para>
2125 Project Home Page: <ulink
2126 url="http://gtk2-perl.sourceforge.net/"/>
2127 </para>
[9620b28]2128 </listitem>
2129 <listitem>
[1a629196]2130 <para>
2131 Download Location: <ulink
2132 url="&sourceforge-dl;/gtk2-perl"/>
2133 </para>
[9620b28]2134 </listitem>
2135 </itemizedlist>
2136
2137 </sect4>
2138
2139 </sect3>
2140
2141 <sect3 role="package">
2142 <title>KDE Language Bindings</title>
2143
[1a629196]2144 <para>
2145 <application>KDE</application> and most
2146 <application>KDE</application> applications are implemented using the
2147 C++ programming language, however there are number of bindings to other
2148 languages are available. These include scripting languages like
2149 <application>Perl</application>, <application>Python</application> and
2150 <application>Ruby</application>, and systems programming languages such
2151 as Java and C#.
2152 </para>
[9620b28]2153
2154 <itemizedlist spacing="compact">
2155 <listitem>
[1a629196]2156 <para>
2157 Project Home Page: <ulink
2158 url="http://techbase.kde.org/Development/Languages"/>
2159 </para>
[9620b28]2160 </listitem>
2161 </itemizedlist>
2162
2163 </sect3>
2164
[9aa5011]2165 <sect3 role="package">
[67f2f78a]2166 <title>Numerical Python (Numpy)</title>
[9aa5011]2167
[1a629196]2168 <para>
2169 <application>Numerical Python</application> adds a fast array
2170 facility to the <application>Python</application> language.
2171 </para>
[9aa5011]2172
2173 <itemizedlist spacing="compact">
2174 <listitem>
[1a629196]2175 <para>
2176 Project Home Page: <ulink
2177 url="http://numeric.scipy.org/"/>
2178 </para>
[9aa5011]2179 </listitem>
2180 <listitem>
[1a629196]2181 <para>
2182 Download Location: <ulink
2183 url="&sourceforge-dl;/numpy/"/>
2184 </para>
[9aa5011]2185 </listitem>
2186 </itemizedlist>
2187
2188 </sect3>
2189
[9620b28]2190 <sect3 role="package">
[67f2f78a]2191 <title>Perl Scripts and Additional Modules</title>
[9620b28]2192
[1a629196]2193 <para>
2194 There are many <application>Perl</application> scripts and
2195 additional modules located on the Comprehensive Perl Archive Network
2196 (CPAN) web site. Here you will find <quote>All Things Perl</quote>.
2197 </para>
[9620b28]2198
2199 <itemizedlist spacing="compact">
2200 <listitem>
[1a629196]2201 <para>
2202 Project Home Page: <ulink
2203 url="http://cpan.org/"/>
2204 </para>
[67f2f78a]2205 </listitem>
2206 </itemizedlist>
2207
2208 </sect3>
2209
2210 </sect2>
2211
2212 <sect2>
[38e71da]2213 <title>Integrated Development Environments</title>
[67f2f78a]2214
[9aa5011]2215 <sect3 role="package">
[67f2f78a]2216 <title>A-A-P</title>
[9aa5011]2217
[1a629196]2218 <para>
2219 <application>A-A-P</application> makes it easy to locate, download,
2220 build and install software. It also supports browsing source code,
2221 developing programs, managing different versions and distribution of
2222 software and documentation. This means that
2223 <application>A-A-P</application> is useful both for users and for
2224 developers.
2225 </para>
[9aa5011]2226
2227 <itemizedlist spacing="compact">
2228 <listitem>
[1a629196]2229 <para>
2230 Project Home Page: <ulink
2231 url="http://www.a-a-p.org/index.html"/>
2232 </para>
[9aa5011]2233 </listitem>
2234 <listitem>
[1a629196]2235 <para>
2236 Download Location: <ulink
2237 url="http://www.a-a-p.org/download.html"/>
2238 </para>
[9aa5011]2239 </listitem>
2240 </itemizedlist>
2241
2242 </sect3>
2243
[38e71da]2244 <sect3 role="package">
2245 <title>Anjuta</title>
2246
[1a629196]2247 <para>
2248 <application>Anujuta</application> is a versatile Integrated
2249 Development Environment (IDE) for C and C++ on GNU/Linux. It has been
2250 written for <application>GTK</application>/GNOME and features a number
2251 of advanced programming facilities. These include project management,
2252 application wizards, an on-board interactive debugger, and a powerful
2253 source editor with source browsing and syntax highlighting.
2254 </para>
[38e71da]2255
2256 <itemizedlist spacing="compact">
2257 <listitem>
[1a629196]2258 <para>
2259 Project Home Page: <ulink
2260 url="http://projects.gnome.org/anjuta/index.shtml"/>
2261 </para>
[38e71da]2262 </listitem>
2263 <listitem>
[1a629196]2264 <para>
2265 Download Location: <ulink
2266 url="http://projects.gnome.org/anjuta/downloads.html"/>
2267 </para>
[38e71da]2268 </listitem>
2269 </itemizedlist>
2270
2271 </sect3>
2272
2273 <sect3 role="package">
2274 <title>Eclipse</title>
2275
[1a629196]2276 <para>
2277 <application>Eclipse</application> is an open source community
2278 whose projects are focused on providing an extensible development
2279 platform and application frameworks for building software.
2280 <application>Eclipse</application> contains many projects, including an
2281 Integrated Development Environment (IDE) for Java.
2282 </para>
[38e71da]2283
2284 <itemizedlist spacing="compact">
2285 <listitem>
[1a629196]2286 <para>
2287 Project Home Page: <ulink
2288 url="http://www.eclipse.org/"/>
2289 </para>
[38e71da]2290 </listitem>
2291 <listitem>
[1a629196]2292 <para>
2293 Download Location: <ulink
2294 url="http://www.eclipse.org/downloads/"/>
2295 </para>
[38e71da]2296 </listitem>
2297 </itemizedlist>
2298
2299 </sect3>
2300
2301 <sect3 role="package">
2302 <title>Mozart</title>
2303
[1a629196]2304 <para>
2305 The <application>Mozart</application> Programming System is an advanced
2306 development platform for intelligent, distributed applications.
2307 <application>Mozart</application> is based on the Oz language, which
2308 supports declarative programming, object-oriented programming,
2309 constraint programming, and concurrency as part of a coherent whole.
2310 For distribution, <application>Mozart</application> provides a true
2311 network transparent implementation with support for network awareness,
2312 openness, and fault tolerance. Security is upcoming. It is an ideal
2313 platform for both general-purpose distributed applications as well as
2314 for hard problems requiring sophisticated optimization and inferencing
2315 abilities.
2316 </para>
[38e71da]2317
2318 <itemizedlist spacing="compact">
2319 <listitem>
[1a629196]2320 <para>
2321 Project Home Page: <ulink
2322 url="http://mozart.github.io/"/>
2323 </para>
[38e71da]2324 </listitem>
2325 <listitem>
[1a629196]2326 <para>
2327 Download Location: <ulink
2328 url="https://github.com/mozart/mozart2#downloads"/>
2329 </para>
[38e71da]2330 </listitem>
2331 </itemizedlist>
2332
2333 </sect3>
2334
2335 </sect2>
2336
2337 <sect2>
2338 <title>Other Development Tools</title>
2339
[9aa5011]2340 <sect3 role="package">
[67f2f78a]2341 <title>cachecc1</title>
[9aa5011]2342
[1a629196]2343 <para>
2344 <application>cachecc1</application> is a
2345 <application>GCC</application> cache. It can be compared with the well
2346 known <application>ccache</application> package. It has some unique
2347 features including the use of an LD_PRELOADed shared object to catch
2348 invocations to <command>cc1</command>, <command>cc1plus</command> and
2349 <command>as</command>, it transparently supports all build methods, it
2350 can cache <application>GCC</application> bootstraps and it can be
2351 combined with <application>distcc</application> to transparently
2352 distribute compilations.
2353 </para>
[9aa5011]2354
2355 <itemizedlist spacing="compact">
2356 <listitem>
[1a629196]2357 <para>
2358 Project Home Page: <ulink
2359 url="http://cachecc1.sourceforge.net/"/>
2360 </para>
[9aa5011]2361 </listitem>
2362 <listitem>
[1a629196]2363 <para>
2364 Download Location: <ulink
2365 url="&sourceforge-dl;/cachecc1"/>
2366 </para>
[9aa5011]2367 </listitem>
2368 </itemizedlist>
2369
2370 </sect3>
2371
[9620b28]2372 <sect3 role="package">
[67f2f78a]2373 <title>ccache</title>
[9620b28]2374
[1a629196]2375 <para>
2376 <application>ccache</application> is a compiler cache. It acts as
2377 a caching pre-processor to C/C++ compilers, using the
2378 <option>-E</option> compiler switch and a hash to detect when a
2379 compilation can be satisfied from cache. This often results in 5 to
2380 10 times faster speeds in common compilations.
2381 </para>
[9620b28]2382
2383 <itemizedlist spacing="compact">
2384 <listitem>
[1a629196]2385 <para>
2386 Project Home Page: <ulink
2387 url="https://ccache.dev"/>
2388 </para>
[67f2f78a]2389 </listitem>
2390 <listitem>
[1a629196]2391 <para>
2392 Download Location: <ulink
2393 url="https://github.com/ccache/ccache/releases/"/>
2394 </para>
[9620b28]2395 </listitem>
2396 </itemizedlist>
2397
2398 </sect3>
[9aa5011]2399
2400 <sect3 role="package">
[67f2f78a]2401 <title>DDD (GNU Data Display Debugger)</title>
[9aa5011]2402
[1a629196]2403 <para>
2404 <application>GNU DDD</application> is a graphical front-end for
2405 command-line debuggers such as <application>GDB</application>,
2406 <application>DBX</application>, <application>WDB</application>,
2407 <application>Ladebug</application>, <application>JDB</application>,
2408 <application>XDB</application>, the <application>Perl</application>
2409 debugger, the <application>Bash</application> debugger, or the
2410 <application>Python</application> debugger. Besides
2411 <quote>usual</quote> front-end features such as viewing source texts,
2412 <application>DDD</application> has an interactive graphical data
2413 display, where data structures are displayed as graphs.
2414 </para>
[9aa5011]2415
2416 <itemizedlist spacing="compact">
2417 <listitem>
[1a629196]2418 <para>
2419 Project Home Page: <ulink
2420 url="http://www.gnu.org/software/ddd/"/>
2421 </para>
[9aa5011]2422 </listitem>
2423 <listitem>
[1a629196]2424 <para>
2425 Download Location: <ulink
2426 url="&gnu-http;/ddd/"/>
2427 </para>
[67f2f78a]2428 </listitem>
2429 </itemizedlist>
2430
2431 </sect3>
2432
2433 <sect3 role="package">
2434 <title>distcc</title>
2435
[1a629196]2436 <para>
2437 <application>distcc</application> is a program to distribute builds
2438 of C, C++, Objective C or Objective C++ code across several machines
2439 on a network. <application>distcc</application> should always generate
2440 the same results as a local build, is simple to install and use, and
2441 is usually much faster than a local compile.
2442 <application>distcc</application> does not require all machines to
2443 share a filesystem, have synchronized clocks, or to have the same
2444 libraries or header files installed. They can even have different
2445 processors or operating systems, if cross-compilers are installed.
2446 </para>
[67f2f78a]2447
2448 <itemizedlist spacing="compact">
2449 <listitem>
[1a629196]2450 <para>
2451 Project Home Page: <ulink
2452 url="https://distcc.github.io/"/>
2453 </para>
[67f2f78a]2454 </listitem>
2455 <listitem>
[1a629196]2456 <para>
2457 Download Location: <ulink
2458 url="https://github.com/distcc/distcc/releases"/>
2459 </para>
[67f2f78a]2460 </listitem>
2461 </itemizedlist>
2462
2463 </sect3>
2464
[665c751f]2465 <sect3 role="package">
2466 <title>Exuberant Ctags</title>
2467
[1a629196]2468 <para>
2469 <application>Exuberant Ctags</application> generates an index (or
2470 tag) file of language objects found in source files that allows these
2471 items to be quickly and easily located by a text editor or other
2472 utility. A tag signifies a language object for which an index entry
2473 is available (or, alternatively, the index entry created for that
2474 object). Tag generation is supported for the following languages:
2475 Assembler, AWK, ASP, BETA, Bourne/Korn/Zsh Shell, C, C++, COBOL,
2476 Eiffel, Fortran, Java, Lisp, Lua, Make, Pascal, Perl, PHP, Python,
2477 REXX, Ruby, S-Lang, Scheme, Tcl, Vim, and YACC. A list of editors and
2478 tools utilizing tag files may be found at <ulink
2479 url="http://ctags.sourceforge.net/tools.html"/>.
2480 </para>
[665c751f]2481
2482 <itemizedlist spacing="compact">
2483 <listitem>
[1a629196]2484 <para>
2485 Project Home Page: <ulink
2486 url="http://ctags.sourceforge.net/"/>
2487 </para>
[665c751f]2488 </listitem>
2489 <listitem>
[1a629196]2490 <para>
2491 Download Location: <ulink
2492 url="&sourceforge-dl;/ctags/"/>
2493 </para>
[665c751f]2494 </listitem>
2495 </itemizedlist>
2496
2497 </sect3>
[1a629196]2498<!-- Untouched since 2008. There is a variable with a similar name that can be
2499 used when compiling Go projects. So this porject can be considered dead.
[67f2f78a]2500 <sect3 role="package">
2501 <title>gocache (GNU Object Cache)</title>
2502
[1a629196]2503 <para>
2504 <application>goache</application> is a clone of
2505 <application>ccache</application>, with the goal of supporting
2506 compilers other than <application>GCC</application> and adding
2507 additional features. Embedded compilers will especially be in focus.
2508 </para>
[67f2f78a]2509
2510 <itemizedlist spacing="compact">
2511 <listitem>
[1a629196]2512 <para>
2513 Project Home Page: <ulink
2514 url="http://sourceforge.net/projects/gocache/"/>
2515 </para>
[67f2f78a]2516 </listitem>
2517 <listitem>
[1a629196]2518 <para>
2519 Download Location: <ulink
2520 url="&sourceforge-dl;/gocache/"/>
2521 </para>
[67f2f78a]2522 </listitem>
2523 </itemizedlist>
2524
2525 </sect3>
[1a629196]2526-->
[67f2f78a]2527 <sect3 role="package">
2528 <title>OProfile</title>
2529
[1a629196]2530 <para>
2531 <application>OProfile</application> is a system-wide profiler for
2532 Linux systems, capable of profiling all running code at low overhead.
2533 <application>OProfile</application> is released under the GNU GPL. It
2534 consists of a kernel driver and a daemon for collecting sample data,
2535 and several post-profiling tools for turning data into information.
2536 <application>OProfile</application> leverages the hardware performance
2537 counters of the CPU to enable profiling of a wide variety of
2538 interesting statistics, which can also be used for basic time-spent
2539 profiling. All code is profiled: hardware and software interrupt
2540 handlers, kernel modules, the kernel, shared libraries, and
2541 applications. <application>OProfile</application> is currently in
2542 alpha status; however it has proven stable over a large number of
2543 differing configurations. It is being used on machines ranging from
2544 laptops to 16-way NUMA-Q boxes.
2545 </para>
[67f2f78a]2546
2547 <itemizedlist spacing="compact">
2548 <listitem>
[1a629196]2549 <para>
2550 Project Home Page: <ulink
2551 url="http://oprofile.sourceforge.net/news/"/>
2552 </para>
[67f2f78a]2553 </listitem>
2554 <listitem>
[1a629196]2555 <para>
2556 Download Location: <ulink
2557 url="http://oprofile.sourceforge.net/download/"/>
2558 </para>
[9aa5011]2559 </listitem>
2560 </itemizedlist>
2561
2562 </sect3>
[9620b28]2563
2564 <sect3 role="package">
2565 <title>strace</title>
2566
[1a629196]2567 <para>
2568 <application>strace</application> is a system call tracer, i.e., a
2569 debugging tool which prints out a trace of all the system calls made by
2570 another process or program.
2571 </para>
[9620b28]2572
2573 <itemizedlist spacing="compact">
2574 <listitem>
[1a629196]2575 <para>
2576 Project Home Page: <ulink
2577 url="https://strace.io"/>
2578 </para>
[9620b28]2579 </listitem>
2580 <listitem>
[1a629196]2581 <para>
2582 Download Location: <ulink
2583 url="https://strace.io/files/"/>
2584 </para>
[9620b28]2585 </listitem>
2586 </itemizedlist>
2587
2588 </sect3>
2589
2590 </sect2>
2591
2592</sect1>
Note: See TracBrowser for help on using the repository browser.