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