- Timestamp:
- 11/07/2005 02:42:39 AM (19 years ago)
- Branches:
- 10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 12.2, 6.2, 6.2.0, 6.2.0-rc1, 6.2.0-rc2, 6.3, 6.3-rc1, 6.3-rc2, 6.3-rc3, 7.10, 7.4, 7.5, 7.6, 7.6-blfs, 7.6-systemd, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, gimp3, gnome, kde5-13430, kde5-14269, kde5-14686, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, krejzi/svn, lazarus, lxqt, nosym, perl-modules, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, systemd-11177, systemd-13485, trunk, upgradedb, xry111/for-12.3, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/spidermonkey128, xry111/test-20220226, xry111/xf86-video-removal
- Children:
- 2555778
- Parents:
- 67f2f78a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
general/prog/other-tools.xml
r67f2f78a re92c670e 57 57 58 58 --> 59 60 <sect3 role="package"> 61 <title>A+</title> 62 63 <para><application>A+</application> is a powerful and efficient 64 programming language. It is freely available under the GNU General 65 Public License. It embodies a rich set of functions and operators, a 66 modern graphical user interface with many widgets and automatic 67 synchronization of widgets and variables, asynchronous execution of 68 functions associated with variables and events, dynamic loading of user 69 compiled subroutines, and many other features. Execution is by a rather 70 efficient interpreter. <application>A+</application> was created at 71 Morgan Stanley. Primarily used in a computationally-intensive business 72 environment, many critical applications written in 73 <application>A+</application> have withstood the demands of real world 74 developers over many years. Written in an interpreted language, 75 <application>A+</application> applications tend to be portable.</para> 76 77 <itemizedlist spacing="compact"> 78 <listitem> 79 <para>Project Home Page: <ulink 80 url="http://www.aplusdev.org/"/></para> 81 </listitem> 82 <listitem> 83 <para>Download Location: <ulink 84 url="http://www.aplusdev.org/Download/index.html"/></para> 85 </listitem> 86 </itemizedlist> 87 88 </sect3> 89 90 <sect3 role="package"> 91 <title>ASM</title> 92 93 <para><application>ASM</application> is a Java bytecode manipulation 94 framework. It can be used to dynamically generate stub classes or other 95 proxy classes, directly in binary form, or to dynamically modify 96 classes at load time, i.e., just before they are loaded into the Java 97 Virtual Machine. <application>ASM</application> offers similar 98 functionalities as BCEL or SERP, but is much smaller (33KB instead of 99 350KB for BCEL and 150KB for SERP) and faster than these tools (the 100 overhead of a load time class transformation is of the order of 60% with 101 <application>ASM</application>, 700% or more with BCEL, and 1100% or 102 more with SERP). Indeed <application>ASM</application> was designed to be 103 used in a dynamic way (though it works statically as well) and was 104 therefore designed and implemented to be as small and as fast as 105 possible.</para> 106 107 <itemizedlist spacing="compact"> 108 <listitem> 109 <para>Project Home Page: <ulink 110 url="http://asm.objectweb.org/"/></para> 111 </listitem> 112 <listitem> 113 <para>Download Location: <ulink 114 url="http://forge.objectweb.org/projects/asm/"/></para> 115 </listitem> 116 </itemizedlist> 117 118 </sect3> 119 120 <sect3 role="package"> 121 <title><bigwig></title> 122 123 <para><application><bigwig></application> is a high-level 124 programming language for developing interactive Web services. Programs 125 are compiled into a conglomerate of lower-level technologies such as C 126 code, HTTP, HTML, JavaScript, and SSL, all running on top of a runtime 127 system based on an Apache Web server module. It is a descendant of the 128 Mawl project but is a completely new design and implementation with 129 vastly expanded ambitions. The <application><bigwig></application> 130 language is really a collection of tiny domain-specific languages 131 focusing on different aspects of interactive Web services. These 132 contributing languages are held together by a C-like skeleton language. 133 Thus, <application><bigwig></application> has the look and feel of 134 C-programs but with special data and control structures.</para> 135 136 <itemizedlist spacing="compact"> 137 <listitem> 138 <para>Project Home Page: <ulink 139 url="http://www.brics.dk/bigwig/"/></para> 140 </listitem> 141 <listitem> 142 <para>Download Location: <ulink 143 url="http://www.brics.dk/bigwig/download/"/></para> 144 </listitem> 145 </itemizedlist> 146 147 </sect3> 148 149 <sect3 role="package"> 150 <title>Byte Code Engineering Library (BCEL)</title> 151 152 <para><application>BECL</application> is intended to give users a 153 convenient possibility to analyze, create, and manipulate (binary) Java 154 class files (those ending with 155 <filename class='extension'>.class</filename>). Classes are represented 156 by objects which contain all the symbolic information of the given class: 157 methods, fields and byte code instructions, in particular. Such objects 158 can be read from an existing file, be transformed by a program (e.g., a 159 class loader at run-time) and dumped to a file again. An even more 160 interesting application is the creation of classes from scratch at 161 run-time. The Byte Code Engineering Library may be also useful if you 162 want to learn about the Java Virtual Machine (JVM) and the format of Java 163 <filename class='extension'>.class</filename> files. 164 <application>BCEL</application> is already being used successfully in 165 several projects such as compilers, optimizers, obsfuscators, code 166 generators and analysis tools.</para> 167 168 <itemizedlist spacing="compact"> 169 <listitem> 170 <para>Project Home Page: <ulink 171 url="http://jakarta.apache.org/bcel/index.html"/></para> 172 </listitem> 173 <listitem> 174 <para>Download Location: <ulink 175 url="http://jakarta.apache.org/site/downloads/downloads_bcel.cgi/"/></para> 176 </listitem> 177 </itemizedlist> 178 179 </sect3> 180 181 <sect3 role="package"> 182 <title>Bigloo</title> 183 184 <para><application>Bigloo</application> is a Scheme implementation 185 devoted to one goal: enabling Scheme based programming style where C(++) 186 is usually required. <application>Bigloo</application> attempts to make 187 Scheme practical by offering features usually presented by traditional 188 programming languages but not offered by Scheme and functional 189 programming. Bigloo compiles Scheme modules and delivers small and fast 190 stand-alone binary executables. It enables full connections between 191 Scheme and C programs, between Scheme and Java programs, and between 192 Scheme and C# programs.</para> 193 194 <itemizedlist spacing="compact"> 195 <listitem> 196 <para>Project Home Page: <ulink 197 url="http://www-sop.inria.fr/mimosa/fp/Bigloo/"/></para> 198 </listitem> 199 <listitem> 200 <para>Download Location: <ulink 201 url="ftp://ftp-sop.inria.fr/mimosa/fp/Bigloo/"/></para> 202 </listitem> 203 </itemizedlist> 204 205 </sect3> 206 207 <sect3 role="package"> 208 <title>C--</title> 209 210 <para><application>C--</application> is a portable assembly language that 211 can be generated by a front end and implemented by any of several code 212 generators. It serves as an interface between high-level compilers and 213 retargetable, optimizing code generators. Authors of front ends and code 214 generators can cooperate easily.</para> 215 216 <itemizedlist spacing="compact"> 217 <listitem> 218 <para>Project Home Page: <ulink 219 url="http://www.cminusminus.org/"/></para> 220 </listitem> 221 <listitem> 222 <para>Download Location: <ulink 223 url="http://www.cminusminus.org/code.html"/></para> 224 </listitem> 225 </itemizedlist> 226 227 </sect3> 228 229 <sect3 role="package"> 230 <title>Caml</title> 231 232 <para><application>Caml</application> is a general-purpose programming 233 language, designed with program safety and reliability in mind. It is 234 very expressive, yet easy to learn and use. 235 <application>Caml</application> supports functional, imperative, and 236 object-oriented programming styles. It has been developed and distributed 237 by INRIA, France's national research institute for computer science, 238 since 1985. The Objective Caml system is the main implementation of the 239 <application>Caml</application> language. It features a powerful module 240 system and a full-fledged object-oriented layer. It comes with a 241 native-code compiler that supports numerous architectures, for high 242 performance; a bytecode compiler, for increased portability; and an 243 interactive loop, for experimentation and rapid development.</para> 244 245 <itemizedlist spacing="compact"> 246 <listitem> 247 <para>Project Home Page: <ulink 248 url="http://caml.inria.fr/"/></para> 249 </listitem> 250 <listitem> 251 <para>Download Location: <ulink 252 url="http://caml.inria.fr/pub/distrib/"/></para> 253 </listitem> 254 </itemizedlist> 255 256 </sect3> 257 258 <sect3 role="package"> 259 <title>Cayenne</title> 260 261 <para><application>Cayenne</application> is a simple(?) functional 262 language with a powerful type system. The basic types are functions, 263 products, and sums. Functions and products use dependent types to gain 264 additional power. There are very few building blocks in the language, but 265 a lot of <quote>syntactic sugar</quote> to make it more readable. There 266 is no separate module language in <application>Cayenne</application> 267 since the dependent types allow the normal expression language to be used 268 at the module level as well. The design of 269 <application>Cayenne</application> has been heavily influenced by 270 <application>Haskell</application> and constructive type theory and with 271 some things borrowed from Java. The drawback of such a powerful type 272 system is that the type checking becomes undecidable.</para> 273 274 <itemizedlist spacing="compact"> 275 <listitem> 276 <para>Project Home Page: <ulink 277 url="http://www.cs.chalmers.se/~augustss/cayenne/"/></para> 278 </listitem> 279 <listitem> 280 <para>Download Location: <ulink 281 url="http://www.cs.chalmers.se/~augustss/cayenne/get.html"/></para> 282 </listitem> 283 </itemizedlist> 284 285 </sect3> 286 287 <sect3 role="package"> 288 <title>Ch</title> 289 290 <para><application>Ch</application> is an embeddable C/C++ interpreter 291 for cross-platform scripting, shell programming, 2D/3D plotting, 292 numerical computing, and embedded scripting.</para> 293 294 <itemizedlist spacing="compact"> 295 <listitem> 296 <para>Project Home Page: <ulink 297 url="http://www.softintegration.com/"/></para> 298 </listitem> 299 <listitem> 300 <para>Download Location: <ulink 301 url="http://www.softintegration.com/products/chstandard/download/"/></para> 302 </listitem> 303 </itemizedlist> 304 305 </sect3> 306 307 <sect3 role="package"> 308 <title>Clean</title> 309 310 <para><application>Clean</application> is a general purpose, 311 state-of-the-art, pure and lazy functional programming language designed 312 for making real-world applications. <application>Clean</application> is 313 the only functional language in the world which offers uniqueness typing. 314 This type system makes it possible in a pure functional language to 315 incorporate destructive updates of arbitrary data structures (including 316 arrays) and to make direct interfaces to the outside imperative world. 317 The type system makes it possible to develop efficient 318 applications.</para> 319 320 <itemizedlist spacing="compact"> 321 <listitem> 322 <para>Project Home Page: <ulink 323 url="http://www.cs.ru.nl/~clean/"/></para> 324 </listitem> 325 <listitem> 326 <para>Download Location: <ulink 327 url="http://www.cs.ru.nl/~clean/Download/download.html"/></para> 328 </listitem> 329 </itemizedlist> 330 331 </sect3> 332 333 <sect3 role="package"> 334 <title>Cyclone</title> 335 336 <para><application>Cyclone</application> is a programming language based 337 on C that is safe, meaning that it rules out programs that have buffer 338 overflows, dangling pointers, format string attacks, and so on. 339 High-level, type-safe languages, such as Java, Scheme, or ML also provide 340 safety, but they don't give the same control over data representations 341 and memory management that C does (witness the fact that the run-time 342 systems for these languages are usually written in C.) Furthermore, 343 porting legacy C code to these languages or interfacing with legacy C 344 libraries is a difficult and error-prone process. The goal of 345 <application>Cyclone</application> is to give programmers the same 346 low-level control and performance of C without sacrificing safety, and to 347 make it easy to port or interface with legacy C code.</para> 348 349 <itemizedlist spacing="compact"> 350 <listitem> 351 <para>Project Home Page: <ulink 352 url="http://www.research.att.com/projects/cyclone/"/></para> 353 </listitem> 354 <listitem> 355 <para>Download Location: <ulink 356 url="http://www.eecs.harvard.edu/~greg/cyclone/software/"/></para> 357 </listitem> 358 </itemizedlist> 359 360 </sect3> 361 362 <sect3 role="package"> 363 <title>D</title> 364 365 <para><application>D</application> is a general purpose systems and 366 applications programming language. It is a higher level language than 367 C++, but retains the ability to write high performance code and interface 368 directly with the operating system APIs and with hardware. 369 <application>D</application> is well suited to writing medium to large 370 scale million line programs with teams of developers. It is easy to 371 learn, provides many capabilities to aid the programmer, and is well 372 suited to aggressive compiler optimization technology. 373 <application>D</application> is not a scripting language, nor an 374 interpreted language. It doesn't come with a VM, a religion, or an 375 overriding philosophy. It's a practical language for practical 376 programmers who need to get the job done quickly, reliably, and leave 377 behind maintainable, easy to understand code. 378 <application>D</application> is the culmination of decades of experience 379 implementing compilers for many diverse languages, and attempting to 380 construct large projects using those languages. It draws inspiration from 381 those other languages (most especially C++) and tempers it with 382 experience and real world practicality.</para> 383 384 <itemizedlist spacing="compact"> 385 <listitem> 386 <para>Project Home Page: <ulink 387 url="http://www.digitalmars.com/d/"/></para> 388 </listitem> 389 <listitem> 390 <para>Download Location: <ulink 391 url="ftp://ftp.digitalmars.com/"/></para> 392 </listitem> 393 </itemizedlist> 394 395 </sect3> 396 397 <sect3 role="package"> 398 <title>DMDScript</title> 399 400 <para><application>DMDScript</application> is Digital Mars' 401 implementation of the ECMA 262 scripting language. Netscape's 402 implementation is called JavaScript, Microsoft's implementation is 403 called JScript. <application>DMDScript</application> is much faster 404 than other implementations, which you can verify with the included 405 benchmark.</para> 406 407 <itemizedlist spacing="compact"> 408 <listitem> 409 <para>Project Home Page: <ulink 410 url="http://www.digitalmars.com/dscript/index.html"/></para> 411 </listitem> 412 <listitem> 413 <para>Download Location: <ulink 414 url="ftp://ftp.digitalmars.com/"/></para> 415 </listitem> 416 </itemizedlist> 417 418 </sect3> 419 420 <sect3 role="package"> 421 <title>DotGNU Portable.NET</title> 422 423 <para><application>DotGNU Portable.NET</application> goal is to build a 424 suite of free software tools to build and execute .NET applications, 425 including a C# compiler, assembler, disassembler, and runtime engine. 426 While the initial target platform was GNU/Linux, it is also known to run 427 under Windows, Solaris, NetBSD, FreeBSD, and MacOS X. The runtime engine 428 has been tested on the x86, PowerPC, ARM, Sparc, PARISC, s390, Alpha, and 429 IA-64 processors. <application>DotGNU Portable.NET</application> is part 430 of the DotGNU project, built in accordance with the requirements of the 431 GNU Project. DotGNU Portable.NET is focused on compatibility with the 432 ECMA specifications for CLI. There are other projects under the DotGNU 433 meta-project to build other necessary pieces of infrastructure, and to 434 explore non-CLI approaches to virtual machine implementation.</para> 435 436 <itemizedlist spacing="compact"> 437 <listitem> 438 <para>Project Home Page: <ulink 439 url="http://www.southern-storm.com.au/portable_net.html"/></para> 440 </listitem> 441 <listitem> 442 <para>Download Location: <ulink 443 url="http://www.southern-storm.com.au/portable_net.html#download"/></para> 444 </listitem> 445 </itemizedlist> 446 447 </sect3> 448 449 <sect3 role="package"> 450 <title>E</title> 451 452 <para><application>E</application> is a secure distributed Java-based 453 pure-object platform and p2p scripting language. It has two parts: ELib 454 and the <application>E</application> Language. Elib provides the stuff 455 that goes on between objects. As a pure-Java library, ELib provides for 456 inter-process capability-secure distributed programming. Its 457 cryptographic capability protocol enables mutually suspicious Java 458 processes to cooperate safely, and its event-loop concurrency and promise 459 pipelining enable high performance deadlock free distributed pure-object 460 computing. The <application>E</application> Language can be used to 461 express what happens within an object. It provides a convenient and 462 familiar notation for the ELib computational model, so you can program 463 in one model rather than two. Under the covers, this notation expands 464 into Kernel-E, a minimalist lambda-language much like Scheme or 465 Smalltalk. Objects written in the <application>E</application> language 466 are only able to interact with other objects according to ELib's 467 semantics, enabling object granularity intra-process security, including 468 the ability to safely run untrusted mobile code (such as caplets).</para> 469 470 <itemizedlist spacing="compact"> 471 <listitem> 472 <para>Project Home Page: <ulink 473 url="http://www.erights.org/"/></para> 474 </listitem> 475 <listitem> 476 <para>Download Location: <ulink 477 url="http://www.erights.org/download/"/></para> 478 </listitem> 479 </itemizedlist> 480 481 </sect3> 482 483 <sect3 role="package"> 484 <title>Erlang/OTP</title> 485 486 <para><application>Erlang/OTP</application> is a development environment 487 based on Erlang. Erlang is a programming language which has many features 488 more commonly associated with an operating system than with a programming 489 language: concurrent processes, scheduling, memory management, 490 distribution, networking, etc. The initial open-source Erlang release 491 contains the implementation of Erlang, as well as a large part of 492 Ericsson's middleware for building distributed high-availability systems. 493 Erlang is characterized by the following features: robustness, soft 494 real-time, hot code upgrades and incremental code loading.</para> 495 496 <itemizedlist spacing="compact"> 497 <listitem> 498 <para>Project Home Page: <ulink 499 url="http://www.erlang.org/"/></para> 500 </listitem> 501 <listitem> 502 <para>Download Location: <ulink 503 url="http://www.erlang.org/download.html"/></para> 504 </listitem> 505 </itemizedlist> 506 507 </sect3> 59 508 60 509 <sect3 role="package"> … … 86 535 87 536 <sect3 role="package"> 537 <title>GNU Smalltalk</title> 538 539 <para><application>GNU Smalltalk</application> is a free implementation 540 of the Smalltalk-80 language which runs on most versions on Unix and, in 541 general, everywhere you can find a POSIX-compliance library. An uncommon 542 feature of it is that it is well-versed to scripting tasks and headless 543 processing. See <ulink 544 url="http://www.gnu.org/software/smalltalk/gst-manual/gst_1.html#SEC1"/> 545 for a more detailed explanation of 546 <application>GNU Smalltalk</application>.</para> 547 548 <itemizedlist spacing="compact"> 549 <listitem> 550 <para>Project Home Page: <ulink 551 url="http://www.gnu.org/software/smalltalk/"/></para> 552 </listitem> 553 <listitem> 554 <para>Download Location: <ulink 555 url="http://ftp.gnu.org/gnu/smalltalk/"/></para> 556 </listitem> 557 </itemizedlist> 558 559 </sect3> 560 561 <sect3 role="package"> 562 <title>Haskell</title> 563 564 <para>Haskell is a computer programming language. In particular, it is a 565 polymorphicly typed, lazy, purely functional language, quite different 566 from most other programming languages. The language is named for Haskell 567 Brooks Curry, whose work in mathematical logic serves as a foundation for 568 functional languages. Haskell is based on lambda calculus. There are many 569 implementations of Haskell, among them:</para> 570 571 <itemizedlist spacing="compact"> 572 <listitem> 573 <para>GHC: <ulink 574 url="http://www.haskell.org/ghc/"/></para> 575 </listitem> 576 <listitem> 577 <para>HBC: <ulink 578 url="http://www.cs.chalmers.se/~augustss/hbc/hbc.html"/></para> 579 </listitem> 580 <listitem> 581 <para>Helium: <ulink 582 url="http://www.cs.uu.nl/helium/"/></para> 583 </listitem> 584 <listitem> 585 <para>Hugs: <ulink 586 url="http://www.haskell.org/hugs/"/></para> 587 </listitem> 588 <listitem> 589 <para>nhc98: <ulink 590 url="http://www.haskell.org/nhc98/"/></para> 591 </listitem> 592 </itemizedlist> 593 594 </sect3> 595 596 <sect3 role="package"> 597 <title>Jamaica</title> 598 599 <para><application>Jamaica</application>, the JVM Macro Assembler, is an 600 easy-to-learn and easy-to-use assembly language for JVM bytecode 601 programming. It uses Java syntax to define a JVM class except for the 602 method body that takes bytecode instructions, including 603 <application>Jamaica</application>'s built-in macros. In 604 <application>Jamaica</application>, bytecode instructions use mnemonics 605 and symbolic names for all variables, parameters, data fields, constants 606 and labels.</para> 607 608 <itemizedlist spacing="compact"> 609 <listitem> 610 <para>Project Home Page: <ulink 611 url="http://www.judoscript.com/jamaica.html"/></para> 612 </listitem> 613 <listitem> 614 <para>Download Location: <ulink 615 url="http://www.judoscript.com/download.html"/></para> 616 </listitem> 617 </itemizedlist> 618 619 </sect3> 620 621 <sect3 role="package"> 622 <title>Judo</title> 623 624 <para><application>Judo</application> is a practical, functional 625 scripting language. It is designed to cover the use cases of not only 626 algorithmic/object-oriented/multi-threaded programming and Java scripting 627 but also a number of major application domain tasks, such as scripting 628 for JDBC, WSDL, ActiveX, OS, multiple file/data formats, etc. Despite its 629 rich functionality, the base language is extremely simple, and domain 630 support syntax is totally intuitive to domain experts, so that even 631 though you have never programmed in <application>Judo</application>, you 632 would have little trouble figuring out what the code does.</para> 633 634 <itemizedlist spacing="compact"> 635 <listitem> 636 <para>Project Home Page: <ulink 637 url="http://www.judoscript.com/home.html"/></para> 638 </listitem> 639 <listitem> 640 <para>Download Location: <ulink 641 url="http://www.judoscript.com/download.html"/></para> 642 </listitem> 643 </itemizedlist> 644 645 </sect3> 646 647 <sect3 role="package"> 648 <title>JWIG</title> 649 650 <para><application>JWIG</application> is a Java-based high-level 651 programming language for development of interactive Web services. It 652 contains an advanced session model, a flexible mechanism for dynamic 653 construction of XML documents, in particular XHTML, and a powerful API 654 for simplifying use of the HTTP protocol and many other aspects of Web 655 service programming. To support program development, 656 <application>JWIG</application> provides a unique suite of highly 657 specialized program analyses that at compile time verify for a given 658 program that no runtime errors can occur while building documents or 659 receiving form input, and that all documents being shown are valid 660 according to the document type definition for XHTML 1.0. The main goal of 661 the <application>JWIG</application> project is to simplify development of 662 complex Web services, compared to alternatives, such as, Servlets, JSP, 663 ASP, and PHP. <application>JWIG</application> is a descendant of the 664 <application><bigwig></application> research language.</para> 665 666 <itemizedlist spacing="compact"> 667 <listitem> 668 <para>Project Home Page: <ulink 669 url="http://www.brics.dk/JWIG/"/></para> 670 </listitem> 671 <listitem> 672 <para>Download Location: <ulink 673 url="http://www.brics.dk/JWIG/download.html"/></para> 674 </listitem> 675 </itemizedlist> 676 677 </sect3> 678 679 <sect3 role="package"> 680 <title>Lua</title> 681 682 <para><application>Lua</application> is a powerful light-weight 683 programming language designed for extending applications. It is also 684 frequently used as a general-purpose, stand-alone language. It is free 685 software. <application>Lua</application> combines simple procedural 686 syntax with powerful data description constructs based on associative 687 arrays and extensible semantics. It is dynamically typed, interpreted 688 from bytecodes, and has automatic memory management with garbage 689 collection, making it ideal for configuration, scripting, and rapid 690 prototyping. A fundamental concept in the design of 691 <application>Lua</application> is to provide meta-mechanisms for 692 implementing features, instead of providing a host of features directly 693 in the language. For example, although <application>Lua</application> is 694 not a pure object-oriented language, it does provide meta-mechanisms for 695 implementing classes and inheritance. <application>Lua</application>'s 696 meta-mechanisms bring an economy of concepts and keep the language small, 697 while allowing the semantics to be extended in unconventional ways. 698 Extensible semantics is a distinguishing feature of 699 <application>Lua</application>. <application>Lua</application> is a 700 language engine that you can embed into your application. This means 701 that, besides syntax and semantics, it has an API that allows the 702 application to exchange data with <application>Lua</application> programs 703 and also to extend <application>Lua</application> with C functions. In 704 this sense, it can be regarded as a language framework for building 705 domain-specific languages. <application>Lua</application> is implemented 706 as a small library of C functions, written in ANSI C, and compiles 707 unmodified in all known platforms. The implementation goals are 708 simplicity, efficiency, portability, and low embedding cost. The result 709 is a fast language engine with small footprint, making it ideal in 710 embedded systems too.</para> 711 712 <itemizedlist spacing="compact"> 713 <listitem> 714 <para>Project Home Page: <ulink 715 url="http://www.lua.org/"/></para> 716 </listitem> 717 <listitem> 718 <para>Download Location: <ulink 719 url="http://www.lua.org/download.html"/></para> 720 </listitem> 721 </itemizedlist> 722 723 </sect3> 724 725 <sect3 role="package"> 88 726 <title>Mono</title> 89 727 … … 123 761 <para>Download Location: <ulink 124 762 url="http://prdownloads.sourceforge.net/ogdl/"/></para> 763 </listitem> 764 </itemizedlist> 765 766 </sect3> 767 768 <sect3 role="package"> 769 <title>pike</title> 770 771 <para><application>pike</application> is a dynamic programming language 772 with a syntax similar to Java and C. It is simple to learn, does not 773 require long compilation passes and has powerful built-in data types 774 allowing simple and really fast data manipulation. Pike is released under 775 the GNU GPL, GNU LGPL and MPL.</para> 776 777 <itemizedlist spacing="compact"> 778 <listitem> 779 <para>Project Home Page: <ulink 780 url="http://pike.ida.liu.se/"/></para> 781 </listitem> 782 <listitem> 783 <para>Download Location: <ulink 784 url="http://pike.ida.liu.se/download/pub/pike"/></para> 125 785 </listitem> 126 786 </itemizedlist> … … 155 815 <para>Download Location: <ulink 156 816 url="http://cran.r-project.org/mirrors.html"/></para> 817 </listitem> 818 </itemizedlist> 819 820 </sect3> 821 822 <sect3 role="package"> 823 <title>Regina Rexx</title> 824 825 <para><application>Regina</application> is a Rexx interpreter that has 826 been ported to most Unix platforms (Linux, FreeBSD, Solaris, AIX, HP-UX, 827 etc.) and also to OS/2, eCS, DOS, Win9x/Me/NT/2k/XP, Amiga, AROS, QNX4.x, 828 QNX6.x BeOS, MacOS X, EPOC32, AtheOS, OpenVMS, SkyOS and OpenEdition. 829 Rexx is a programming language that was designed to be easy to use for 830 inexperienced programmers yet powerful enough for experienced users. It 831 is also a language ideally suited as a macro language for other 832 applications.</para> 833 834 <itemizedlist spacing="compact"> 835 <listitem> 836 <para>Project Home Page: <ulink 837 url="http://regina-rexx.sourceforge.net/"/></para> 838 </listitem> 839 <listitem> 840 <para>Download Location: <ulink 841 url="http://prdownloads.sourceforge.net/regina-rexx"/></para> 842 </listitem> 843 </itemizedlist> 844 845 </sect3> 846 847 <sect3 role="package"> 848 <title>Serp</title> 849 850 <para><application>Serp</application> is an open source framework for 851 manipulating Java bytecode. The goal of the 852 <application>Serp</application> bytecode framework is to tap the full 853 power of bytecode modification while lowering its associated costs. The 854 framework provides a set of high-level APIs for manipulating all aspects 855 of bytecode, from large-scale structures like class member fields to the 856 individual instructions that comprise the code of methods. While in order 857 to perform any advanced manipulation, some understanding of the class 858 file format and especially of the JVM instruction set is necessary, the 859 framework makes it as easy as possible to enter the world of bytecode 860 development.</para> 861 862 <itemizedlist spacing="compact"> 863 <listitem> 864 <para>Project Home Page: <ulink 865 url="http://serp.sourceforge.net/"/></para> 866 </listitem> 867 <listitem> 868 <para>Download Location: <ulink 869 url="http://serp.sourceforge.net/files/"/></para> 870 </listitem> 871 </itemizedlist> 872 873 </sect3> 874 875 <sect3 role="package"> 876 <title>Small Device C Compiler (SDCC)</title> 877 878 <para><application>SDCC</application> is a Freeware, retargettable, 879 optimizing ANSI-C compiler that targets the Intel 8051, Maxim 80DS390 880 and the Zilog Z80 based MCUs. Work is in progress on supporting the 881 Motorola 68HC08 as well as Microchip PIC16 and PIC18 series. The entire 882 source code for the compiler is distributed under GPL.</para> 883 884 <itemizedlist spacing="compact"> 885 <listitem> 886 <para>Project Home Page: <ulink 887 url="http://sdcc.sourceforge.net/"/></para> 888 </listitem> 889 <listitem> 890 <para>Download Location: <ulink 891 url="http://sdcc.sourceforge.net/snap.php#Source"/></para> 892 </listitem> 893 </itemizedlist> 894 895 </sect3> 896 897 <sect3 role="package"> 898 <title>Standard ML</title> 899 900 <para>Standard ML is a safe, modular, strict, functional, polymorphic 901 programming language with compile-time type checking and type inference, 902 garbage collection, exception handling, immutable data types and 903 updatable references, abstract data types, and parametric modules. It has 904 efficient implementations and a formal definition with a proof of 905 soundness. There are many implementations of Standard ML, among them:</para> 906 907 <itemizedlist spacing="compact"> 908 <listitem> 909 <para>ML Kit: <ulink 910 url="http://www.it-c.dk/research/mlkit/"/></para> 911 </listitem> 912 <listitem> 913 <para>MLton: <ulink 914 url="http://mlton.org/"/></para> 915 </listitem> 916 <listitem> 917 <para>Moscow ML: <ulink 918 url="http://www.dina.kvl.dk/~sestoft/mosml.html"/></para> 919 </listitem> 920 <listitem> 921 <para>Poly/ML: <ulink 922 url="http://www.polyml.org/"/></para> 923 </listitem> 924 <listitem> 925 <para>Standard ML of New Jersey: <ulink 926 url="http://www.smlnj.org/"/></para> 927 </listitem> 928 </itemizedlist> 929 930 </sect3> 931 932 <sect3 role="package"> 933 <title>Steel Bank Common Lisp (SBCL)</title> 934 935 <para><application>SBCL</application> is an open source (free software) 936 compiler and runtime system for ANSI Common Lisp. It provides an 937 interactive environment including an integrated native compiler, a 938 debugger, and many extensions. <application>SBCL</application> runs on a 939 number of platforms.</para> 940 941 <itemizedlist spacing="compact"> 942 <listitem> 943 <para>Project Home Page: <ulink 944 url="http://www.sbcl.org/"/></para> 945 </listitem> 946 <listitem> 947 <para>Download Location: <ulink 948 url="http://prdownloads.sourceforge.net/sbcl/"/></para> 949 </listitem> 950 </itemizedlist> 951 952 </sect3> 953 954 <sect3 role="package"> 955 <title>Tiny C Compiler (TCC)</title> 956 957 <para><application>Tiny C Compiler</application> is a small C compiler 958 that can be used to compile and execute C code everywhere, for example 959 on rescue disks (about 100KB for x86 TCC executable, including C 960 preprocessor, C compiler, assembler and linker). 961 <application>TCC</application> is fast. It generates optimized x86 code, 962 has no byte code overhead and compiles, assembles and links several times 963 faster than <application>GCC</application>. 964 <application>TCC</application> is versatile, any C dynamic library can be 965 used directly. It is heading torward full ISOC99 compliance and can 966 compile itself. The compiler is safe as it includes an optional memory 967 and bound checker. Bound checked code can be mixed freely with standard 968 code. <application>TCC</application> compiles and executes C source 969 directly. No linking or assembly necessary. A full C preprocessor and 970 GNU-like assembler is included. It is C script supported; just add 971 <quote>#!/usr/local/bin/tcc -run</quote> on the first line of your C 972 source, and execute it directly from the command line. With libtcc, you 973 can use <application>TCC</application> as a backend for dynamic code 974 generation.</para> 975 976 <itemizedlist spacing="compact"> 977 <listitem> 978 <para>Project Home Page: <ulink 979 url="http://www.tinycc.org/"/></para> 980 </listitem> 981 <listitem> 982 <para>Download Location: <ulink 983 url="http://fabrice.bellard.free.fr/tcc/"/></para> 157 984 </listitem> 158 985 </itemizedlist>
Note:
See TracChangeset
for help on using the changeset viewer.