source: archive/other-tools.xml@ 45ab6c7

11.0 11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 45ab6c7 was 45ab6c7, checked in by Xi Ruoyao <xry111@…>, 3 years ago

more SVN prop clean up

Remove "$LastChanged$" everywhere, and also some unused $Date$

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