source: general/prog/other-tools.xml@ e92c670e

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

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

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

  • Property mode set to 100644
File size: 60.4 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/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 </sect2>
32
33 <sect2>
34 <title>Programming Frameworks, Languages and Compilers</title>
35
36 <!-- This is a template for additions to this page. Cut 18 lines and
37 paste them in alphabetical order for the new package. '18dd' and
38 move down to the alpha order and 'p' works great (using vi).
39
40 <sect3 role="package">
41 <title></title>
42
43 <para><application></application> This is the description.</para>
44
45 <itemizedlist spacing="compact">
46 <listitem>
47 <para>Project Home Page: <ulink
48 url=""/></para>
49 </listitem>
50 <listitem>
51 <para>Download Location: <ulink
52 url=""/></para>
53 </listitem>
54 </itemizedlist>
55
56 </sect3>
57
58 -->
59
60 <sect3 role="package">
61 <title>A+</title>
62
63 <para><application>A+</application> is a powerful and efficient
64 programming language. It is freely available under the GNU General
65 Public License. It embodies a rich set of functions and operators, a
66 modern graphical user interface with many widgets and automatic
67 synchronization of widgets and variables, asynchronous execution of
68 functions associated with variables and events, dynamic loading of user
69 compiled subroutines, and many other features. Execution is by a rather
70 efficient interpreter. <application>A+</application> was created at
71 Morgan Stanley. Primarily used in a computationally-intensive business
72 environment, many critical applications written in
73 <application>A+</application> have withstood the demands of real world
74 developers over many years. Written in an interpreted language,
75 <application>A+</application> applications tend to be portable.</para>
76
77 <itemizedlist spacing="compact">
78 <listitem>
79 <para>Project Home Page: <ulink
80 url="http://www.aplusdev.org/"/></para>
81 </listitem>
82 <listitem>
83 <para>Download Location: <ulink
84 url="http://www.aplusdev.org/Download/index.html"/></para>
85 </listitem>
86 </itemizedlist>
87
88 </sect3>
89
90 <sect3 role="package">
91 <title>ASM</title>
92
93 <para><application>ASM</application> is a Java bytecode manipulation
94 framework. It can be used to dynamically generate stub classes or other
95 proxy classes, directly in binary form, or to dynamically modify
96 classes at load time, i.e., just before they are loaded into the Java
97 Virtual Machine. <application>ASM</application> offers similar
98 functionalities as BCEL or SERP, but is much smaller (33KB instead of
99 350KB for BCEL and 150KB for SERP) and faster than these tools (the
100 overhead of a load time class transformation is of the order of 60% with
101 <application>ASM</application>, 700% or more with BCEL, and 1100% or
102 more with SERP). Indeed <application>ASM</application> was designed to be
103 used in a dynamic way (though it works statically as well) and was
104 therefore designed and implemented to be as small and as fast as
105 possible.</para>
106
107 <itemizedlist spacing="compact">
108 <listitem>
109 <para>Project Home Page: <ulink
110 url="http://asm.objectweb.org/"/></para>
111 </listitem>
112 <listitem>
113 <para>Download Location: <ulink
114 url="http://forge.objectweb.org/projects/asm/"/></para>
115 </listitem>
116 </itemizedlist>
117
118 </sect3>
119
120 <sect3 role="package">
121 <title>&lt;bigwig&gt;</title>
122
123 <para><application>&lt;bigwig&gt;</application> is a high-level
124 programming language for developing interactive Web services. Programs
125 are compiled into a conglomerate of lower-level technologies such as C
126 code, HTTP, HTML, JavaScript, and SSL, all running on top of a runtime
127 system based on an Apache Web server module. It is a descendant of the
128 Mawl project but is a completely new design and implementation with
129 vastly expanded ambitions. The <application>&lt;bigwig&gt;</application>
130 language is really a collection of tiny domain-specific languages
131 focusing on different aspects of interactive Web services. These
132 contributing languages are held together by a C-like skeleton language.
133 Thus, <application>&lt;bigwig&gt;</application> has the look and feel of
134 C-programs but with special data and control structures.</para>
135
136 <itemizedlist spacing="compact">
137 <listitem>
138 <para>Project Home Page: <ulink
139 url="http://www.brics.dk/bigwig/"/></para>
140 </listitem>
141 <listitem>
142 <para>Download Location: <ulink
143 url="http://www.brics.dk/bigwig/download/"/></para>
144 </listitem>
145 </itemizedlist>
146
147 </sect3>
148
149 <sect3 role="package">
150 <title>Byte Code Engineering Library (BCEL)</title>
151
152 <para><application>BECL</application> is intended to give users a
153 convenient possibility to analyze, create, and manipulate (binary) Java
154 class files (those ending with
155 <filename class='extension'>.class</filename>). Classes are represented
156 by objects which contain all the symbolic information of the given class:
157 methods, fields and byte code instructions, in particular. Such objects
158 can be read from an existing file, be transformed by a program (e.g., a
159 class loader at run-time) and dumped to a file again. An even more
160 interesting application is the creation of classes from scratch at
161 run-time. The Byte Code Engineering Library may be also useful if you
162 want to learn about the Java Virtual Machine (JVM) and the format of Java
163 <filename class='extension'>.class</filename> files.
164 <application>BCEL</application> is already being used successfully in
165 several projects such as compilers, optimizers, obsfuscators, code
166 generators and analysis tools.</para>
167
168 <itemizedlist spacing="compact">
169 <listitem>
170 <para>Project Home Page: <ulink
171 url="http://jakarta.apache.org/bcel/index.html"/></para>
172 </listitem>
173 <listitem>
174 <para>Download Location: <ulink
175 url="http://jakarta.apache.org/site/downloads/downloads_bcel.cgi/"/></para>
176 </listitem>
177 </itemizedlist>
178
179 </sect3>
180
181 <sect3 role="package">
182 <title>Bigloo</title>
183
184 <para><application>Bigloo</application> is a Scheme implementation
185 devoted to one goal: enabling Scheme based programming style where C(++)
186 is usually required. <application>Bigloo</application> attempts to make
187 Scheme practical by offering features usually presented by traditional
188 programming languages but not offered by Scheme and functional
189 programming. Bigloo compiles Scheme modules and delivers small and fast
190 stand-alone binary executables. It enables full connections between
191 Scheme and C programs, between Scheme and Java programs, and between
192 Scheme and C# programs.</para>
193
194 <itemizedlist spacing="compact">
195 <listitem>
196 <para>Project Home Page: <ulink
197 url="http://www-sop.inria.fr/mimosa/fp/Bigloo/"/></para>
198 </listitem>
199 <listitem>
200 <para>Download Location: <ulink
201 url="ftp://ftp-sop.inria.fr/mimosa/fp/Bigloo/"/></para>
202 </listitem>
203 </itemizedlist>
204
205 </sect3>
206
207 <sect3 role="package">
208 <title>C--</title>
209
210 <para><application>C--</application> is a portable assembly language that
211 can be generated by a front end and implemented by any of several code
212 generators. It serves as an interface between high-level compilers and
213 retargetable, optimizing code generators. Authors of front ends and code
214 generators can cooperate easily.</para>
215
216 <itemizedlist spacing="compact">
217 <listitem>
218 <para>Project Home Page: <ulink
219 url="http://www.cminusminus.org/"/></para>
220 </listitem>
221 <listitem>
222 <para>Download Location: <ulink
223 url="http://www.cminusminus.org/code.html"/></para>
224 </listitem>
225 </itemizedlist>
226
227 </sect3>
228
229 <sect3 role="package">
230 <title>Caml</title>
231
232 <para><application>Caml</application> is a general-purpose programming
233 language, designed with program safety and reliability in mind. It is
234 very expressive, yet easy to learn and use.
235 <application>Caml</application> supports functional, imperative, and
236 object-oriented programming styles. It has been developed and distributed
237 by INRIA, France's national research institute for computer science,
238 since 1985. The Objective Caml system is the main implementation of the
239 <application>Caml</application> language. It features a powerful module
240 system and a full-fledged object-oriented layer. It comes with a
241 native-code compiler that supports numerous architectures, for high
242 performance; a bytecode compiler, for increased portability; and an
243 interactive loop, for experimentation and rapid development.</para>
244
245 <itemizedlist spacing="compact">
246 <listitem>
247 <para>Project Home Page: <ulink
248 url="http://caml.inria.fr/"/></para>
249 </listitem>
250 <listitem>
251 <para>Download Location: <ulink
252 url="http://caml.inria.fr/pub/distrib/"/></para>
253 </listitem>
254 </itemizedlist>
255
256 </sect3>
257
258 <sect3 role="package">
259 <title>Cayenne</title>
260
261 <para><application>Cayenne</application> is a simple(?) functional
262 language with a powerful type system. The basic types are functions,
263 products, and sums. Functions and products use dependent types to gain
264 additional power. There are very few building blocks in the language, but
265 a lot of <quote>syntactic sugar</quote> to make it more readable. There
266 is no separate module language in <application>Cayenne</application>
267 since the dependent types allow the normal expression language to be used
268 at the module level as well. The design of
269 <application>Cayenne</application> has been heavily influenced by
270 <application>Haskell</application> and constructive type theory and with
271 some things borrowed from Java. The drawback of such a powerful type
272 system is that the type checking becomes undecidable.</para>
273
274 <itemizedlist spacing="compact">
275 <listitem>
276 <para>Project Home Page: <ulink
277 url="http://www.cs.chalmers.se/~augustss/cayenne/"/></para>
278 </listitem>
279 <listitem>
280 <para>Download Location: <ulink
281 url="http://www.cs.chalmers.se/~augustss/cayenne/get.html"/></para>
282 </listitem>
283 </itemizedlist>
284
285 </sect3>
286
287 <sect3 role="package">
288 <title>Ch</title>
289
290 <para><application>Ch</application> is an embeddable C/C++ interpreter
291 for cross-platform scripting, shell programming, 2D/3D plotting,
292 numerical computing, and embedded scripting.</para>
293
294 <itemizedlist spacing="compact">
295 <listitem>
296 <para>Project Home Page: <ulink
297 url="http://www.softintegration.com/"/></para>
298 </listitem>
299 <listitem>
300 <para>Download Location: <ulink
301 url="http://www.softintegration.com/products/chstandard/download/"/></para>
302 </listitem>
303 </itemizedlist>
304
305 </sect3>
306
307 <sect3 role="package">
308 <title>Clean</title>
309
310 <para><application>Clean</application> is a general purpose,
311 state-of-the-art, pure and lazy functional programming language designed
312 for making real-world applications. <application>Clean</application> is
313 the only functional language in the world which offers uniqueness typing.
314 This type system makes it possible in a pure functional language to
315 incorporate destructive updates of arbitrary data structures (including
316 arrays) and to make direct interfaces to the outside imperative world.
317 The type system makes it possible to develop efficient
318 applications.</para>
319
320 <itemizedlist spacing="compact">
321 <listitem>
322 <para>Project Home Page: <ulink
323 url="http://www.cs.ru.nl/~clean/"/></para>
324 </listitem>
325 <listitem>
326 <para>Download Location: <ulink
327 url="http://www.cs.ru.nl/~clean/Download/download.html"/></para>
328 </listitem>
329 </itemizedlist>
330
331 </sect3>
332
333 <sect3 role="package">
334 <title>Cyclone</title>
335
336 <para><application>Cyclone</application> is a programming language based
337 on C that is safe, meaning that it rules out programs that have buffer
338 overflows, dangling pointers, format string attacks, and so on.
339 High-level, type-safe languages, such as Java, Scheme, or ML also provide
340 safety, but they don't give the same control over data representations
341 and memory management that C does (witness the fact that the run-time
342 systems for these languages are usually written in C.) Furthermore,
343 porting legacy C code to these languages or interfacing with legacy C
344 libraries is a difficult and error-prone process. The goal of
345 <application>Cyclone</application> is to give programmers the same
346 low-level control and performance of C without sacrificing safety, and to
347 make it easy to port or interface with legacy C code.</para>
348
349 <itemizedlist spacing="compact">
350 <listitem>
351 <para>Project Home Page: <ulink
352 url="http://www.research.att.com/projects/cyclone/"/></para>
353 </listitem>
354 <listitem>
355 <para>Download Location: <ulink
356 url="http://www.eecs.harvard.edu/~greg/cyclone/software/"/></para>
357 </listitem>
358 </itemizedlist>
359
360 </sect3>
361
362 <sect3 role="package">
363 <title>D</title>
364
365 <para><application>D</application> is a general purpose systems and
366 applications programming language. It is a higher level language than
367 C++, but retains the ability to write high performance code and interface
368 directly with the operating system APIs and with hardware.
369 <application>D</application> is well suited to writing medium to large
370 scale million line programs with teams of developers. It is easy to
371 learn, provides many capabilities to aid the programmer, and is well
372 suited to aggressive compiler optimization technology.
373 <application>D</application> is not a scripting language, nor an
374 interpreted language. It doesn't come with a VM, a religion, or an
375 overriding philosophy. It's a practical language for practical
376 programmers who need to get the job done quickly, reliably, and leave
377 behind maintainable, easy to understand code.
378 <application>D</application> is the culmination of decades of experience
379 implementing compilers for many diverse languages, and attempting to
380 construct large projects using those languages. It draws inspiration from
381 those other languages (most especially C++) and tempers it with
382 experience and real world practicality.</para>
383
384 <itemizedlist spacing="compact">
385 <listitem>
386 <para>Project Home Page: <ulink
387 url="http://www.digitalmars.com/d/"/></para>
388 </listitem>
389 <listitem>
390 <para>Download Location: <ulink
391 url="ftp://ftp.digitalmars.com/"/></para>
392 </listitem>
393 </itemizedlist>
394
395 </sect3>
396
397 <sect3 role="package">
398 <title>DMDScript</title>
399
400 <para><application>DMDScript</application> is Digital Mars'
401 implementation of the ECMA 262 scripting language. Netscape's
402 implementation is called JavaScript, Microsoft's implementation is
403 called JScript. <application>DMDScript</application> is much faster
404 than other implementations, which you can verify with the included
405 benchmark.</para>
406
407 <itemizedlist spacing="compact">
408 <listitem>
409 <para>Project Home Page: <ulink
410 url="http://www.digitalmars.com/dscript/index.html"/></para>
411 </listitem>
412 <listitem>
413 <para>Download Location: <ulink
414 url="ftp://ftp.digitalmars.com/"/></para>
415 </listitem>
416 </itemizedlist>
417
418 </sect3>
419
420 <sect3 role="package">
421 <title>DotGNU Portable.NET</title>
422
423 <para><application>DotGNU Portable.NET</application> goal is to build a
424 suite of free software tools to build and execute .NET applications,
425 including a C# compiler, assembler, disassembler, and runtime engine.
426 While the initial target platform was GNU/Linux, it is also known to run
427 under Windows, Solaris, NetBSD, FreeBSD, and MacOS X. The runtime engine
428 has been tested on the x86, PowerPC, ARM, Sparc, PARISC, s390, Alpha, and
429 IA-64 processors. <application>DotGNU Portable.NET</application> is part
430 of the DotGNU project, built in accordance with the requirements of the
431 GNU Project. DotGNU Portable.NET is focused on compatibility with the
432 ECMA specifications for CLI. There are other projects under the DotGNU
433 meta-project to build other necessary pieces of infrastructure, and to
434 explore non-CLI approaches to virtual machine implementation.</para>
435
436 <itemizedlist spacing="compact">
437 <listitem>
438 <para>Project Home Page: <ulink
439 url="http://www.southern-storm.com.au/portable_net.html"/></para>
440 </listitem>
441 <listitem>
442 <para>Download Location: <ulink
443 url="http://www.southern-storm.com.au/portable_net.html#download"/></para>
444 </listitem>
445 </itemizedlist>
446
447 </sect3>
448
449 <sect3 role="package">
450 <title>E</title>
451
452 <para><application>E</application> is a secure distributed Java-based
453 pure-object platform and p2p scripting language. It has two parts: ELib
454 and the <application>E</application> Language. Elib provides the stuff
455 that goes on between objects. As a pure-Java library, ELib provides for
456 inter-process capability-secure distributed programming. Its
457 cryptographic capability protocol enables mutually suspicious Java
458 processes to cooperate safely, and its event-loop concurrency and promise
459 pipelining enable high performance deadlock free distributed pure-object
460 computing. The <application>E</application> Language can be used to
461 express what happens within an object. It provides a convenient and
462 familiar notation for the ELib computational model, so you can program
463 in one model rather than two. Under the covers, this notation expands
464 into Kernel-E, a minimalist lambda-language much like Scheme or
465 Smalltalk. Objects written in the <application>E</application> language
466 are only able to interact with other objects according to ELib's
467 semantics, enabling object granularity intra-process security, including
468 the ability to safely run untrusted mobile code (such as caplets).</para>
469
470 <itemizedlist spacing="compact">
471 <listitem>
472 <para>Project Home Page: <ulink
473 url="http://www.erights.org/"/></para>
474 </listitem>
475 <listitem>
476 <para>Download Location: <ulink
477 url="http://www.erights.org/download/"/></para>
478 </listitem>
479 </itemizedlist>
480
481 </sect3>
482
483 <sect3 role="package">
484 <title>Erlang/OTP</title>
485
486 <para><application>Erlang/OTP</application> is a development environment
487 based on Erlang. Erlang is a programming language which has many features
488 more commonly associated with an operating system than with a programming
489 language: concurrent processes, scheduling, memory management,
490 distribution, networking, etc. The initial open-source Erlang release
491 contains the implementation of Erlang, as well as a large part of
492 Ericsson's middleware for building distributed high-availability systems.
493 Erlang is characterized by the following features: robustness, soft
494 real-time, hot code upgrades and incremental code loading.</para>
495
496 <itemizedlist spacing="compact">
497 <listitem>
498 <para>Project Home Page: <ulink
499 url="http://www.erlang.org/"/></para>
500 </listitem>
501 <listitem>
502 <para>Download Location: <ulink
503 url="http://www.erlang.org/download.html"/></para>
504 </listitem>
505 </itemizedlist>
506
507 </sect3>
508
509 <sect3 role="package">
510 <title>Euphoria</title>
511
512 <para><application>Euphoria</application> is a simple, flexible, and
513 easy-to-learn programming language. It lets you quickly and easily
514 develop programs for Windows, DOS, Linux and FreeBSD. Euphoria was first
515 released in 1993. Since then Rapid Deployment Software has been steadily
516 improving it with the help of a growing number of enthusiastic users.
517 Although <application>Euphoria</application> provides subscript checking,
518 uninitialized variable checking and numerous other run-time checks, it is
519 extremely fast. People have used it to develop high-speed DOS games,
520 Windows GUI programs, and Linux X Windows programs. It is also very
521 useful for CGI (Web-based) programming.</para>
522
523 <itemizedlist spacing="compact">
524 <listitem>
525 <para>Project Home Page: <ulink
526 url="http://www.rapideuphoria.com/"/></para>
527 </listitem>
528 <listitem>
529 <para>Download Location: <ulink
530 url="http://www.rapideuphoria.com/v20.htm"/></para>
531 </listitem>
532 </itemizedlist>
533
534 </sect3>
535
536 <sect3 role="package">
537 <title>GNU Smalltalk</title>
538
539 <para><application>GNU Smalltalk</application> is a free implementation
540 of the Smalltalk-80 language which runs on most versions on Unix and, in
541 general, everywhere you can find a POSIX-compliance library. An uncommon
542 feature of it is that it is well-versed to scripting tasks and headless
543 processing. See <ulink
544 url="http://www.gnu.org/software/smalltalk/gst-manual/gst_1.html#SEC1"/>
545 for a more detailed explanation of
546 <application>GNU Smalltalk</application>.</para>
547
548 <itemizedlist spacing="compact">
549 <listitem>
550 <para>Project Home Page: <ulink
551 url="http://www.gnu.org/software/smalltalk/"/></para>
552 </listitem>
553 <listitem>
554 <para>Download Location: <ulink
555 url="http://ftp.gnu.org/gnu/smalltalk/"/></para>
556 </listitem>
557 </itemizedlist>
558
559 </sect3>
560
561 <sect3 role="package">
562 <title>Haskell</title>
563
564 <para>Haskell is a computer programming language. In particular, it is a
565 polymorphicly typed, lazy, purely functional language, quite different
566 from most other programming languages. The language is named for Haskell
567 Brooks Curry, whose work in mathematical logic serves as a foundation for
568 functional languages. Haskell is based on lambda calculus. There are many
569 implementations of Haskell, among them:</para>
570
571 <itemizedlist spacing="compact">
572 <listitem>
573 <para>GHC: <ulink
574 url="http://www.haskell.org/ghc/"/></para>
575 </listitem>
576 <listitem>
577 <para>HBC: <ulink
578 url="http://www.cs.chalmers.se/~augustss/hbc/hbc.html"/></para>
579 </listitem>
580 <listitem>
581 <para>Helium: <ulink
582 url="http://www.cs.uu.nl/helium/"/></para>
583 </listitem>
584 <listitem>
585 <para>Hugs: <ulink
586 url="http://www.haskell.org/hugs/"/></para>
587 </listitem>
588 <listitem>
589 <para>nhc98: <ulink
590 url="http://www.haskell.org/nhc98/"/></para>
591 </listitem>
592 </itemizedlist>
593
594 </sect3>
595
596 <sect3 role="package">
597 <title>Jamaica</title>
598
599 <para><application>Jamaica</application>, the JVM Macro Assembler, is an
600 easy-to-learn and easy-to-use assembly language for JVM bytecode
601 programming. It uses Java syntax to define a JVM class except for the
602 method body that takes bytecode instructions, including
603 <application>Jamaica</application>'s built-in macros. In
604 <application>Jamaica</application>, bytecode instructions use mnemonics
605 and symbolic names for all variables, parameters, data fields, constants
606 and labels.</para>
607
608 <itemizedlist spacing="compact">
609 <listitem>
610 <para>Project Home Page: <ulink
611 url="http://www.judoscript.com/jamaica.html"/></para>
612 </listitem>
613 <listitem>
614 <para>Download Location: <ulink
615 url="http://www.judoscript.com/download.html"/></para>
616 </listitem>
617 </itemizedlist>
618
619 </sect3>
620
621 <sect3 role="package">
622 <title>Judo</title>
623
624 <para><application>Judo</application> is a practical, functional
625 scripting language. It is designed to cover the use cases of not only
626 algorithmic/object-oriented/multi-threaded programming and Java scripting
627 but also a number of major application domain tasks, such as scripting
628 for JDBC, WSDL, ActiveX, OS, multiple file/data formats, etc. Despite its
629 rich functionality, the base language is extremely simple, and domain
630 support syntax is totally intuitive to domain experts, so that even
631 though you have never programmed in <application>Judo</application>, you
632 would have little trouble figuring out what the code does.</para>
633
634 <itemizedlist spacing="compact">
635 <listitem>
636 <para>Project Home Page: <ulink
637 url="http://www.judoscript.com/home.html"/></para>
638 </listitem>
639 <listitem>
640 <para>Download Location: <ulink
641 url="http://www.judoscript.com/download.html"/></para>
642 </listitem>
643 </itemizedlist>
644
645 </sect3>
646
647 <sect3 role="package">
648 <title>JWIG</title>
649
650 <para><application>JWIG</application> is a Java-based high-level
651 programming language for development of interactive Web services. It
652 contains an advanced session model, a flexible mechanism for dynamic
653 construction of XML documents, in particular XHTML, and a powerful API
654 for simplifying use of the HTTP protocol and many other aspects of Web
655 service programming. To support program development,
656 <application>JWIG</application> provides a unique suite of highly
657 specialized program analyses that at compile time verify for a given
658 program that no runtime errors can occur while building documents or
659 receiving form input, and that all documents being shown are valid
660 according to the document type definition for XHTML 1.0. The main goal of
661 the <application>JWIG</application> project is to simplify development of
662 complex Web services, compared to alternatives, such as, Servlets, JSP,
663 ASP, and PHP. <application>JWIG</application> is a descendant of the
664 <application>&lt;bigwig&gt;</application> research language.</para>
665
666 <itemizedlist spacing="compact">
667 <listitem>
668 <para>Project Home Page: <ulink
669 url="http://www.brics.dk/JWIG/"/></para>
670 </listitem>
671 <listitem>
672 <para>Download Location: <ulink
673 url="http://www.brics.dk/JWIG/download.html"/></para>
674 </listitem>
675 </itemizedlist>
676
677 </sect3>
678
679 <sect3 role="package">
680 <title>Lua</title>
681
682 <para><application>Lua</application> is a powerful light-weight
683 programming language designed for extending applications. It is also
684 frequently used as a general-purpose, stand-alone language. It is free
685 software. <application>Lua</application> combines simple procedural
686 syntax with powerful data description constructs based on associative
687 arrays and extensible semantics. It is dynamically typed, interpreted
688 from bytecodes, and has automatic memory management with garbage
689 collection, making it ideal for configuration, scripting, and rapid
690 prototyping. A fundamental concept in the design of
691 <application>Lua</application> is to provide meta-mechanisms for
692 implementing features, instead of providing a host of features directly
693 in the language. For example, although <application>Lua</application> is
694 not a pure object-oriented language, it does provide meta-mechanisms for
695 implementing classes and inheritance. <application>Lua</application>'s
696 meta-mechanisms bring an economy of concepts and keep the language small,
697 while allowing the semantics to be extended in unconventional ways.
698 Extensible semantics is a distinguishing feature of
699 <application>Lua</application>. <application>Lua</application> is a
700 language engine that you can embed into your application. This means
701 that, besides syntax and semantics, it has an API that allows the
702 application to exchange data with <application>Lua</application> programs
703 and also to extend <application>Lua</application> with C functions. In
704 this sense, it can be regarded as a language framework for building
705 domain-specific languages. <application>Lua</application> is implemented
706 as a small library of C functions, written in ANSI C, and compiles
707 unmodified in all known platforms. The implementation goals are
708 simplicity, efficiency, portability, and low embedding cost. The result
709 is a fast language engine with small footprint, making it ideal in
710 embedded systems too.</para>
711
712 <itemizedlist spacing="compact">
713 <listitem>
714 <para>Project Home Page: <ulink
715 url="http://www.lua.org/"/></para>
716 </listitem>
717 <listitem>
718 <para>Download Location: <ulink
719 url="http://www.lua.org/download.html"/></para>
720 </listitem>
721 </itemizedlist>
722
723 </sect3>
724
725 <sect3 role="package">
726 <title>Mono</title>
727
728 <para><application>Mono</application> provides the necessary software to
729 develop and run .NET client and server applications on Linux, Solaris,
730 Mac OS X, Windows, and Unix. Sponsored by Novell, the
731 <application>Mono</application> open source project has an active and
732 enthusiastic contributing community and is positioned to become the
733 leading choice for development of Linux applications.</para>
734
735 <itemizedlist spacing="compact">
736 <listitem>
737 <para>Project Home Page: <ulink
738 url="http://www.mono-project.com/Main_Page"/></para>
739 </listitem>
740 <listitem>
741 <para>Download Location: <ulink
742 url="http://go-mono.com/sources/"/></para>
743 </listitem>
744 </itemizedlist>
745
746 </sect3>
747
748 <sect3 role="package">
749 <title>Ordered Graph Data Language (OGDL)</title>
750
751 <para><application>OGDL</application> is a structured textual format that
752 represents information in the form of graphs, where the nodes are strings
753 and the arcs or edges are spaces or indentation.</para>
754
755 <itemizedlist spacing="compact">
756 <listitem>
757 <para>Project Home Page: <ulink
758 url="http://ogdl.sourceforge.net/"/></para>
759 </listitem>
760 <listitem>
761 <para>Download Location: <ulink
762 url="http://prdownloads.sourceforge.net/ogdl/"/></para>
763 </listitem>
764 </itemizedlist>
765
766 </sect3>
767
768 <sect3 role="package">
769 <title>pike</title>
770
771 <para><application>pike</application> is a dynamic programming language
772 with a syntax similar to Java and C. It is simple to learn, does not
773 require long compilation passes and has powerful built-in data types
774 allowing simple and really fast data manipulation. Pike is released under
775 the GNU GPL, GNU LGPL and MPL.</para>
776
777 <itemizedlist spacing="compact">
778 <listitem>
779 <para>Project Home Page: <ulink
780 url="http://pike.ida.liu.se/"/></para>
781 </listitem>
782 <listitem>
783 <para>Download Location: <ulink
784 url="http://pike.ida.liu.se/download/pub/pike"/></para>
785 </listitem>
786 </itemizedlist>
787
788 </sect3>
789
790 <sect3 role="package">
791 <title>R</title>
792
793 <para><application>R</application> is a language and environment for
794 statistical computing and graphics. It is a GNU project similar to the
795 <application>S</application> language and environment which was developed
796 at Bell Laboratories (formerly AT&amp;T, now Lucent Technologies) by
797 John Chambers and colleagues. <application>R</application> can be
798 considered as a different implementation of <application>S</application>.
799 There are some important differences, but much code written for
800 <application>S</application> runs unaltered under
801 <application>R</application>. <application>R</application> provides a
802 wide variety of statistical (linear and nonlinear modelling, classical
803 statistical tests, time-series analysis, classification, clustering, ...)
804 and graphical techniques, and is highly extensible. The
805 <application>S</application> language is often the vehicle of choice for
806 research in statistical methodology, and <application>R</application>
807 provides an Open Source route to participation in that activity.</para>
808
809 <itemizedlist spacing="compact">
810 <listitem>
811 <para>Project Home Page: <ulink
812 url="http://www.r-project.org/"/></para>
813 </listitem>
814 <listitem>
815 <para>Download Location: <ulink
816 url="http://cran.r-project.org/mirrors.html"/></para>
817 </listitem>
818 </itemizedlist>
819
820 </sect3>
821
822 <sect3 role="package">
823 <title>Regina Rexx</title>
824
825 <para><application>Regina</application> is a Rexx interpreter that has
826 been ported to most Unix platforms (Linux, FreeBSD, Solaris, AIX, HP-UX,
827 etc.) and also to OS/2, eCS, DOS, Win9x/Me/NT/2k/XP, Amiga, AROS, QNX4.x,
828 QNX6.x BeOS, MacOS X, EPOC32, AtheOS, OpenVMS, SkyOS and OpenEdition.
829 Rexx is a programming language that was designed to be easy to use for
830 inexperienced programmers yet powerful enough for experienced users. It
831 is also a language ideally suited as a macro language for other
832 applications.</para>
833
834 <itemizedlist spacing="compact">
835 <listitem>
836 <para>Project Home Page: <ulink
837 url="http://regina-rexx.sourceforge.net/"/></para>
838 </listitem>
839 <listitem>
840 <para>Download Location: <ulink
841 url="http://prdownloads.sourceforge.net/regina-rexx"/></para>
842 </listitem>
843 </itemizedlist>
844
845 </sect3>
846
847 <sect3 role="package">
848 <title>Serp</title>
849
850 <para><application>Serp</application> is an open source framework for
851 manipulating Java bytecode. The goal of the
852 <application>Serp</application> bytecode framework is to tap the full
853 power of bytecode modification while lowering its associated costs. The
854 framework provides a set of high-level APIs for manipulating all aspects
855 of bytecode, from large-scale structures like class member fields to the
856 individual instructions that comprise the code of methods. While in order
857 to perform any advanced manipulation, some understanding of the class
858 file format and especially of the JVM instruction set is necessary, the
859 framework makes it as easy as possible to enter the world of bytecode
860 development.</para>
861
862 <itemizedlist spacing="compact">
863 <listitem>
864 <para>Project Home Page: <ulink
865 url="http://serp.sourceforge.net/"/></para>
866 </listitem>
867 <listitem>
868 <para>Download Location: <ulink
869 url="http://serp.sourceforge.net/files/"/></para>
870 </listitem>
871 </itemizedlist>
872
873 </sect3>
874
875 <sect3 role="package">
876 <title>Small Device C Compiler (SDCC)</title>
877
878 <para><application>SDCC</application> is a Freeware, retargettable,
879 optimizing ANSI-C compiler that targets the Intel 8051, Maxim 80DS390
880 and the Zilog Z80 based MCUs. Work is in progress on supporting the
881 Motorola 68HC08 as well as Microchip PIC16 and PIC18 series. The entire
882 source code for the compiler is distributed under GPL.</para>
883
884 <itemizedlist spacing="compact">
885 <listitem>
886 <para>Project Home Page: <ulink
887 url="http://sdcc.sourceforge.net/"/></para>
888 </listitem>
889 <listitem>
890 <para>Download Location: <ulink
891 url="http://sdcc.sourceforge.net/snap.php#Source"/></para>
892 </listitem>
893 </itemizedlist>
894
895 </sect3>
896
897 <sect3 role="package">
898 <title>Standard ML</title>
899
900 <para>Standard ML is a safe, modular, strict, functional, polymorphic
901 programming language with compile-time type checking and type inference,
902 garbage collection, exception handling, immutable data types and
903 updatable references, abstract data types, and parametric modules. It has
904 efficient implementations and a formal definition with a proof of
905 soundness. There are many implementations of Standard ML, among them:</para>
906
907 <itemizedlist spacing="compact">
908 <listitem>
909 <para>ML Kit: <ulink
910 url="http://www.it-c.dk/research/mlkit/"/></para>
911 </listitem>
912 <listitem>
913 <para>MLton: <ulink
914 url="http://mlton.org/"/></para>
915 </listitem>
916 <listitem>
917 <para>Moscow ML: <ulink
918 url="http://www.dina.kvl.dk/~sestoft/mosml.html"/></para>
919 </listitem>
920 <listitem>
921 <para>Poly/ML: <ulink
922 url="http://www.polyml.org/"/></para>
923 </listitem>
924 <listitem>
925 <para>Standard ML of New Jersey: <ulink
926 url="http://www.smlnj.org/"/></para>
927 </listitem>
928 </itemizedlist>
929
930 </sect3>
931
932 <sect3 role="package">
933 <title>Steel Bank Common Lisp (SBCL)</title>
934
935 <para><application>SBCL</application> is an open source (free software)
936 compiler and runtime system for ANSI Common Lisp. It provides an
937 interactive environment including an integrated native compiler, a
938 debugger, and many extensions. <application>SBCL</application> runs on a
939 number of platforms.</para>
940
941 <itemizedlist spacing="compact">
942 <listitem>
943 <para>Project Home Page: <ulink
944 url="http://www.sbcl.org/"/></para>
945 </listitem>
946 <listitem>
947 <para>Download Location: <ulink
948 url="http://prdownloads.sourceforge.net/sbcl/"/></para>
949 </listitem>
950 </itemizedlist>
951
952 </sect3>
953
954 <sect3 role="package">
955 <title>Tiny C Compiler (TCC)</title>
956
957 <para><application>Tiny C Compiler</application> is a small C compiler
958 that can be used to compile and execute C code everywhere, for example
959 on rescue disks (about 100KB for x86 TCC executable, including C
960 preprocessor, C compiler, assembler and linker).
961 <application>TCC</application> is fast. It generates optimized x86 code,
962 has no byte code overhead and compiles, assembles and links several times
963 faster than <application>GCC</application>.
964 <application>TCC</application> is versatile, any C dynamic library can be
965 used directly. It is heading torward full ISOC99 compliance and can
966 compile itself. The compiler is safe as it includes an optional memory
967 and bound checker. Bound checked code can be mixed freely with standard
968 code. <application>TCC</application> compiles and executes C source
969 directly. No linking or assembly necessary. A full C preprocessor and
970 GNU-like assembler is included. It is C script supported; just add
971 <quote>#!/usr/local/bin/tcc -run</quote> on the first line of your C
972 source, and execute it directly from the command line. With libtcc, you
973 can use <application>TCC</application> as a backend for dynamic code
974 generation.</para>
975
976 <itemizedlist spacing="compact">
977 <listitem>
978 <para>Project Home Page: <ulink
979 url="http://www.tinycc.org/"/></para>
980 </listitem>
981 <listitem>
982 <para>Download Location: <ulink
983 url="http://fabrice.bellard.free.fr/tcc/"/></para>
984 </listitem>
985 </itemizedlist>
986
987 </sect3>
988
989 </sect2>
990
991 <sect2>
992 <title>Programming Libraries and Bindings</title>
993
994 <sect3 role="package">
995 <title>Boost</title>
996
997 <para><application>Boost</application> provides free peer-reviewed
998 portable C++ source libraries. The emphasis is on libraries which work
999 well with the C++ Standard Library. The libraries are intended to be
1000 widely useful, and are in regular use by thousands of programmers across
1001 a broad spectrum of applications, platforms and programming
1002 environments.</para>
1003
1004 <itemizedlist spacing="compact">
1005 <listitem>
1006 <para>Project Home Page: <ulink
1007 url="http://www.boost.org/"/></para>
1008 </listitem>
1009 <listitem>
1010 <para>Download Location: <ulink
1011 url="http://prdownloads.sourceforge.net/boost/"/></para>
1012 </listitem>
1013 </itemizedlist>
1014
1015 </sect3>
1016
1017 <sect3 role="package">
1018 <title>FFTW (Fastest Fourier Transform in the West)</title>
1019
1020 <para><application>FFTW</application> is a C subroutine library for
1021 computing the discrete Fourier transform (DFT) in one or more dimensions,
1022 of arbitrary input size, and of both real and complex data (as well as of
1023 even/odd data, i.e., the discrete cosine/sine transforms or DCT/DST).</para>
1024
1025 <itemizedlist spacing="compact">
1026 <listitem>
1027 <para>Project Home Page: <ulink
1028 url="http://www.fftw.org/"/></para>
1029 </listitem>
1030 <listitem>
1031 <para>Download Location: <ulink
1032 url="http://www.fftw.org/download.html"/></para>
1033 </listitem>
1034 </itemizedlist>
1035
1036 </sect3>
1037
1038 <sect3 role="package">
1039 <title>GOB (GObject Builder)</title>
1040
1041 <para><application>GOB</application> (<application>GOB2</application>
1042 anyway) is a preprocessor for making GObjects with inline C code so that
1043 generated files are not edited. Syntax is inspired by
1044 <application>Java</application> and <application>Yacc</application> or
1045 <application>Lex</application>. The implementation is intentionally kept
1046 simple, and no C actual code parsing is done.</para>
1047
1048 <itemizedlist spacing="compact">
1049 <listitem>
1050 <para>Project Home Page: <ulink
1051 url="http://www.5z.com/jirka/gob.html"/></para>
1052 </listitem>
1053 <listitem>
1054 <para>Download Location: <ulink
1055 url="http://ftp.5z.com/pub/gob/"/></para>
1056 </listitem>
1057 </itemizedlist>
1058
1059 </sect3>
1060
1061 <sect3 role="package">
1062 <title>GTK+/GNOME Language Bindings (wrappers)</title>
1063
1064 <para><application>GTK+</application>/<application>GNOME</application>
1065 language bindings allow <application>GTK+</application> to be used from
1066 other programming languages, in the style of those languages.</para>
1067
1068 <itemizedlist spacing="compact">
1069 <listitem>
1070 <para>Project Home Page: <ulink
1071 url="http://www.gtk.org/bindings.html"/></para>
1072 </listitem>
1073 </itemizedlist>
1074
1075 <sect4 role="package">
1076 <title>gtkmm</title>
1077
1078 <para><application>gtkmm</application> is the official C++ interface
1079 for the popular GUI library <application>GTK+</application>. Highlights
1080 include typesafe callbacks, widgets extensible via inheritance and a
1081 comprehensive set of widgets. You can create user interfaces either in
1082 code or with the Glade designer, using
1083 <application>libglademm</application>.</para>
1084
1085 <itemizedlist spacing="compact">
1086 <listitem>
1087 <para>Project Home Page: <ulink
1088 url="http://www.gtkmm.org/"/></para>
1089 </listitem>
1090 <listitem>
1091 <para>Download Location: <ulink
1092 url="http://www.gtkmm.org/download.shtml"/></para>
1093 </listitem>
1094 </itemizedlist>
1095
1096 </sect4>
1097
1098 <sect4 role="package">
1099 <title>Java-GNOME</title>
1100
1101 <para><application>Java-GNOME</application> is a set of Java bindings
1102 for the <application>GNOME</application> and
1103 <application>GTK+</application> libraries that allow
1104 <application>GNOME</application> and <application>GTK+</application>
1105 applications to be written in Java. The
1106 <application>Java-GNOME</application> API has been carefully designed
1107 to be easy to use, maintaining a good OO paradigm, yet still wrapping
1108 the entire functionality of the underlying libraries.
1109 <application>Java-GNOME</application> can be used with the
1110 <application>Eclipse</application> development environment and Glade
1111 user interface designer to create applications with ease.</para>
1112
1113 <itemizedlist spacing="compact">
1114 <listitem>
1115 <para>Project Home Page: <ulink
1116 url="http://java-gnome.sourceforge.net/cgi-bin/bin/view"/></para>
1117 </listitem>
1118 <listitem>
1119 <para>Download Location: <ulink
1120 url="http://java-gnome.sourceforge.net/cgi-bin/bin/view/Main/GetJavaGnome#Source_Code"/></para>
1121 </listitem>
1122 </itemizedlist>
1123
1124 </sect4>
1125
1126 <sect4 role="package">
1127 <title>gtk2-perl</title>
1128
1129 <para><application>gtk2-perl</application> is the collective name for
1130 a set of perl bindings for <application>GTK+</application> 2.x and
1131 various related libraries. These modules make it easy to write
1132 <application>GTK</application> and <application>GNOME</application>
1133 applications using a natural, perlish, object-oriented syntax.</para>
1134
1135 <itemizedlist spacing="compact">
1136 <listitem>
1137 <para>Project Home Page: <ulink
1138 url="http://gtk2-perl.sourceforge.net/"/></para>
1139 </listitem>
1140 <listitem>
1141 <para>Download Location: <ulink
1142 url="http://prdownloads.sourceforge.net/gtk2-perl"/></para>
1143 </listitem>
1144 </itemizedlist>
1145
1146 </sect4>
1147
1148 <sect4 role="package">
1149 <title>PyGTK</title>
1150
1151 <para><application>PyGTK</application> provides a convenient wrapper
1152 for the <application>GTK</application> library for use in
1153 <application>Python</application> programs, and takes care of many of
1154 the boring details such as managing memory and type casting. When
1155 combined with <application>PyORBit</application> and
1156 <application>gnome-python</application>, it can be used to write full
1157 featured <application>GNOME</application> applications.</para>
1158
1159 <itemizedlist spacing="compact">
1160 <listitem>
1161 <para>Project Home Page: <ulink
1162 url="http://www.pygtk.org/"/></para>
1163 </listitem>
1164 <listitem>
1165 <para>Download Location: <ulink
1166 url="http://www.pygtk.org/downloads.html"/></para>
1167 </listitem>
1168 </itemizedlist>
1169
1170 </sect4>
1171
1172 </sect3>
1173
1174 <sect3 role="package">
1175 <title>KDE Language Bindings</title>
1176
1177 <para><application>KDE</application> and most
1178 <application>KDE</application> applications are implemented using the
1179 C++ programming language, however there are number of bindings to other
1180 languages are available. These include scripting languages like
1181 <application>Perl</application>, <application>Python</application> and
1182 <application>Ruby</application>, and systems programming languages such
1183 as Java and C#.</para>
1184
1185 <itemizedlist spacing="compact">
1186 <listitem>
1187 <para>Project Home Page: <ulink
1188 url="http://developer.kde.org/language-bindings/"/></para>
1189 </listitem>
1190 </itemizedlist>
1191
1192 </sect3>
1193
1194 <sect3 role="package">
1195 <title>Numerical Python (Numpy)</title>
1196
1197 <para><application>Numerical Python</application> adds a fast array
1198 facility to the <application>Python</application> language.</para>
1199
1200 <itemizedlist spacing="compact">
1201 <listitem>
1202 <para>Project Home Page: <ulink
1203 url="http://numeric.scipy.org/"/></para>
1204 </listitem>
1205 <listitem>
1206 <para>Download Location: <ulink
1207 url="http://prdownloads.sourceforge.net/numpy/"/></para>
1208 </listitem>
1209 </itemizedlist>
1210
1211 </sect3>
1212
1213 <sect3 role="package">
1214 <title>Perl Scripts and Additional Modules</title>
1215
1216 <para>There are many <application>Perl</application> scripts and
1217 additional modules located on the Comprehensive Perl Archive Network
1218 (CPAN) web site. Here you will find
1219 <quote>All Things Perl</quote>.</para>
1220
1221 <itemizedlist spacing="compact">
1222 <listitem>
1223 <para>Project Home Page: <ulink
1224 url="http://cpan.org/"/></para>
1225 </listitem>
1226 </itemizedlist>
1227
1228 </sect3>
1229
1230 <sect3 role="package">
1231 <title>SWIG</title>
1232
1233 <para><application>SWIG</application> is a software development tool
1234 that connects programs written in C and C++ with a variety of high-level
1235 programming languages. <application>SWIG</application> is used with
1236 different types of languages including common scripting languages such as
1237 <application>Perl</application>, <application>Python</application>,
1238 <application>Tcl</application>/<application>Tk</application> and
1239 <application>Ruby</application>. The list of supported languages also
1240 includes non-scripting languages such as <application>C#</application>,
1241 <application>Common Lisp</application> (Allegro CL),
1242 <application>Java</application>, <application>Modula-3</application>
1243 and <application>OCAML</application>. Also several interpreted and
1244 compiled Scheme implementations (<application>Chicken</application>,
1245 <application>Guile</application>, <application>MzScheme</application>)
1246 are supported. <application>SWIG</application> is most commonly used to
1247 create high-level interpreted or compiled programming environments, user
1248 interfaces, and as a tool for testing and prototyping C/C++ software.
1249 <application>SWIG</application> can also export its parse tree in the
1250 form of XML and Lisp s-expressions.</para>
1251
1252 <itemizedlist spacing="compact">
1253 <listitem>
1254 <para>Project Home Page: <ulink
1255 url="http://www.swig.org/"/></para>
1256 </listitem>
1257 <listitem>
1258 <para>Download Location: <ulink
1259 url="http://prdownloads.sourceforge.net/swig/"/></para>
1260 </listitem>
1261 </itemizedlist>
1262
1263 </sect3>
1264
1265 </sect2>
1266
1267 <sect2>
1268 <title>Other Development Tools</title>
1269
1270 <sect3 role="package">
1271 <title>A-A-P</title>
1272
1273 <para><application>A-A-P</application> makes it easy to locate, download,
1274 build and install software. It also supports browsing source code,
1275 developing programs, managing different versions and distribution of
1276 software and documentation. This means that
1277 <application> A-A-P</application> is useful both for users and for
1278 developers.</para>
1279
1280 <itemizedlist spacing="compact">
1281 <listitem>
1282 <para>Project Home Page: <ulink
1283 url="http://www.a-a-p.org/index.html"/></para>
1284 </listitem>
1285 <listitem>
1286 <para>Download Location: <ulink
1287 url="http://www.a-a-p.org/download.html"/></para>
1288 </listitem>
1289 </itemizedlist>
1290
1291 </sect3>
1292
1293 <sect3 role="package">
1294 <title>cachecc1</title>
1295
1296 <para><application>cachecc1</application> is a
1297 <application>GCC</application> cache. It can be compared with the well
1298 known <application>ccache</application> package. It has some unique
1299 features including the use of an LD_PRELOADed shared object to catch
1300 invocations to <command>cc1</command>, <command>cc1plus</command> and
1301 <command>as</command>, it transparently supports all build methods, it
1302 can cache <application>GCC</application> bootstraps and it can be
1303 combined with <application>distcc</application> to transparently
1304 distribute compilations.</para>
1305
1306 <itemizedlist spacing="compact">
1307 <listitem>
1308 <para>Project Home Page: <ulink
1309 url="http://cachecc1.sourceforge.net/"/></para>
1310 </listitem>
1311 <listitem>
1312 <para>Download Location: <ulink
1313 url="http://prdownloads.sourceforge.net/cachecc1"/></para>
1314 </listitem>
1315 </itemizedlist>
1316
1317 </sect3>
1318
1319 <sect3 role="package">
1320 <title>ccache</title>
1321
1322 <para><application>ccache</application> is a compiler cache. It acts as
1323 a caching pre-processor to C/C++ compilers, using the <option>-E</option>
1324 compiler switch and a hash to detect when a compilation can be satisfied
1325 from cache. This often results in 5 to 10 times faster speeds in common
1326 compilations.</para>
1327
1328 <itemizedlist spacing="compact">
1329 <listitem>
1330 <para>Project Home Page: <ulink
1331 url="http://ccache.samba.org/"/></para>
1332 </listitem>
1333 <listitem>
1334 <para>Download Location: <ulink
1335 url="http://ccache.samba.org/ftp/ccache/"/></para>
1336 </listitem>
1337 </itemizedlist>
1338
1339 </sect3>
1340
1341 <sect3 role="package">
1342 <title>DDD (GNU Data Display Debugger)</title>
1343
1344 <para><application>GNU DDD</application> is a graphical front-end for
1345 command-line debuggers such as <application>GDB</application>,
1346 <application>DBX</application>, <application>WDB</application>,
1347 <application>Ladebug</application>, <application>JDB</application>,
1348 <application>XDB</application>, the <application>Perl</application>
1349 debugger, the <application>Bash</application> debugger, or the
1350 <application>Python</application> debugger. Besides <quote>usual</quote>
1351 front-end features such as viewing source texts,
1352 <application>DDD</application> has an interactive graphical data display,
1353 where data structures are displayed as graphs..</para>
1354
1355 <itemizedlist spacing="compact">
1356 <listitem>
1357 <para>Project Home Page: <ulink
1358 url="http://www.gnu.org/software/ddd/"/></para>
1359 </listitem>
1360 <listitem>
1361 <para>Download Location: <ulink
1362 url="http://ftp.gnu.org/gnu/ddd/"/></para>
1363 </listitem>
1364 </itemizedlist>
1365
1366 </sect3>
1367
1368 <sect3 role="package">
1369 <title>distcc</title>
1370
1371 <para><application>distcc</application> is a program to distribute builds
1372 of C, C++, Objective C or Objective C++ code across several machines on a
1373 network. <application>distcc</application> should always generate the
1374 same results as a local build, is simple to install and use, and is
1375 usually much faster than a local compile.
1376 <application>distcc</application> does not require all machines to share
1377 a filesystem, have synchronized clocks, or to have the same libraries or
1378 header files installed. They can even have different processors or
1379 operating systems, if cross-compilers are installed.</para>
1380
1381 <itemizedlist spacing="compact">
1382 <listitem>
1383 <para>Project Home Page: <ulink
1384 url="http://distcc.samba.org/"/></para>
1385 </listitem>
1386 <listitem>
1387 <para>Download Location: <ulink
1388 url="http://distcc.samba.org/download.html"/></para>
1389 </listitem>
1390 </itemizedlist>
1391
1392 </sect3>
1393
1394 <sect3 role="package">
1395 <title>GDB (GNU Debugger)</title>
1396
1397 <para><application>GDB</application> is the GNU Project debugger. It
1398 allows you to see what is going on <quote>inside</quote> another program
1399 while it executes. It also allows you to see what another program was
1400 doing at the moment it crashed.</para>
1401
1402 <itemizedlist spacing="compact">
1403 <listitem>
1404 <para>Project Home Page: <ulink
1405 url="http://www.gnu.org/software/gdb/"/></para>
1406 </listitem>
1407 <listitem>
1408 <para>Download Location: <ulink
1409 url="ftp://ftp.gnu.org/gnu/gdb/"/></para>
1410 </listitem>
1411 </itemizedlist>
1412
1413 </sect3>
1414
1415 <sect3 role="package">
1416 <title>gocache (GNU Object Cache)</title>
1417
1418 <para><application>ccache</application> is a clone of
1419 <application>ccache</application>, with the goal of supporting
1420 compilers other than <application>GCC</application> and adding additional
1421 features. Embedded compilers will especially be in focus.</para>
1422
1423 <itemizedlist spacing="compact">
1424 <listitem>
1425 <para>Project Home Page: <ulink
1426 url="http://sourceforge.net/projects/gocache/"/></para>
1427 </listitem>
1428 <listitem>
1429 <para>Download Location: <ulink
1430 url="http://prdownloads.sourceforge.net/gocache/"/></para>
1431 </listitem>
1432 </itemizedlist>
1433
1434 </sect3>
1435
1436 <sect3 role="package">
1437 <title>OProfile</title>
1438
1439 <para><application>OProfile</application> is a system-wide profiler for
1440 Linux systems, capable of profiling all running code at low overhead.
1441 <application>OProfile</application> is released under the GNU GPL. It
1442 consists of a kernel driver and a daemon for collecting sample data, and
1443 several post-profiling tools for turning data into information.
1444 <application>OProfile</application> leverages the hardware performance
1445 counters of the CPU to enable profiling of a wide variety of interesting
1446 statistics, which can also be used for basic time-spent profiling. All
1447 code is profiled: hardware and software interrupt handlers, kernel
1448 modules, the kernel, shared libraries, and applications.
1449 <application>OProfile</application> is currently in alpha status; however
1450 it has proven stable over a large number of differing configurations. It
1451 is being used on machines ranging from laptops to 16-way NUMA-Q
1452 boxes.</para>
1453
1454 <itemizedlist spacing="compact">
1455 <listitem>
1456 <para>Project Home Page: <ulink
1457 url="http://oprofile.sourceforge.net/news/"/></para>
1458 </listitem>
1459 <listitem>
1460 <para>Download Location: <ulink
1461 url="http://oprofile.sourceforge.net/download/"/></para>
1462 </listitem>
1463 </itemizedlist>
1464
1465 </sect3>
1466
1467 <sect3 role="package">
1468 <title>SCons</title>
1469
1470 <para><application>SCons</application> is an Open Source software
1471 construction tool, i.e, a next-generation build tool. Think of
1472 <application>SCons</application> as an improved, cross-platform
1473 substitute for the classic <command>make</command> utility with
1474 integrated functionality similar to
1475 <application>Autoconf</application>/<application>Automake</application>
1476 and compiler caches such as <command>ccache</command>.</para>
1477
1478 <itemizedlist spacing="compact">
1479 <listitem>
1480 <para>Project Home Page: <ulink
1481 url="http://scons.sourceforge.net/"/></para>
1482 </listitem>
1483 <listitem>
1484 <para>Download Location: <ulink
1485 url="http://prdownloads.sourceforge.net/scons/"/></para>
1486 </listitem>
1487 </itemizedlist>
1488
1489 </sect3>
1490
1491 <sect3 role="package">
1492 <title>strace</title>
1493
1494 <para><application>strace</application> is a system call tracer, i.e., a
1495 debugging tool which prints out a trace of all the system calls made by
1496 another process or program.</para>
1497
1498 <itemizedlist spacing="compact">
1499 <listitem>
1500 <para>Project Home Page: <ulink
1501 url="http://www.liacs.nl/~wichert/strace/"/></para>
1502 </listitem>
1503 <listitem>
1504 <para>Download Location: <ulink
1505 url="http://prdownloads.sourceforge.net/strace/"/></para>
1506 </listitem>
1507 </itemizedlist>
1508
1509 </sect3>
1510
1511 <sect3 role="package">
1512 <title>Valgrind</title>
1513
1514 <para><application>Valgrind</application> is a collection of five tools:
1515 two memory error detectors, a thread error detector, a cache profiler and
1516 a heap profiler used for debugging and profiling Linux programs. Features
1517 include automatic detection of many memory management and threading bugs
1518 as well as detailed profiling to speed up and reduce memory use of your
1519 programs.</para>
1520
1521 <itemizedlist spacing="compact">
1522 <listitem>
1523 <para>Project Home Page: <ulink
1524 url="http://valgrind.org/"/></para>
1525 </listitem>
1526 <listitem>
1527 <para>Download Location: <ulink
1528 url="http://valgrind.org/downloads/source_code.html"/></para>
1529 </listitem>
1530 </itemizedlist>
1531
1532 </sect3>
1533
1534 </sect2>
1535
1536</sect1>
Note: See TracBrowser for help on using the repository browser.