source: general/prog/other-tools.xml@ 5df6476

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 5df6476 was 3f81ae7d, checked in by Igor Živković <igor@…>, 10 years ago

Chris Staub's patch updating other programming tools page

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

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