source: archive/other-tools.xml@ ce8d289

10.0 10.1 11.0 lazarus qt5new trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since ce8d289 was ce8d289, checked in by Pierre Labastie <pieere@…>, 18 months ago

Archive "other-something" pages

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

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