| |||||||||||
| Contents | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
| Free Programming Languages | |||||||||||
| ABC | ABC is an interactive programming language and environment for personal computing, originally intended as a good replacement for BASIC. ABC is easy to learn (an hour or so for someone who has already programmed), and yet easy to use. Originally intended as a language for beginners, it has evolved into a powerful tool for beginners and experts alike. | ||||||||||
| APL | Very symbolic and concise programming language based on mathematical logic. The APL symbol set is the equivalent of many words in describing algorithms or procedures. Often one or a few APL symbols (function) can have the same result as several lines of code in another computer language. | ||||||||||
| Assembly | Assembly (or Assembler), is a human-readable notation for the machine language (or 'bits and bytes') used by micro processors. When creating software in Assembler, you are coding at a more fundamental level than when coding in the other languages. This can have advantages in the sense that your software has the potential to be much more efficient (than what can be achieved with the other programming languages), but in general it requires more time and effort. | ||||||||||
| Basic | Basic stands for 'Beginner's All-purpose Symbolic Instruction Code', illustrating that it is an easy to use programming language. It has also been criticized for creating bad programming habits in beginners because of its lack of structure, weak typing, etc. (compared to e.g. Pascal, C++ and Smalltalk). | ||||||||||
| BASICO | A small imperative programming language that is just powerful enough to compile itself (compiler bootstrapping). It produces real binary programs for x86 processors. | ||||||||||
| C# | C# (or C-Sharp) is an interpreted programming language for the .NET platform (Windows only) by Microsoft. C# draws heavily from Java and C++. | ||||||||||
| C++ / C | C++ (including C) is the most popular programming language available for writing system-software and applications. C++ enables one to write very concise programming code, but is less suitable for beginning programmers. | ||||||||||
| Clean | Functional language in the world which offers 'uniqueness typing'.
This type system makes it possible in a pure functional language to incorporate
destructive updates of arbitrary data structures (including arrays) and to make
direct interfaces to the outside imperative world. Freeware for non-commercial use. Open-source. | ||||||||||
| Clipper | Harbour is a free open-source compiler for the xBase superset language often referred to as Clipper. Runs on Windows, DOS, Linux and OS/2. | ||||||||||
| Cobol | Cobol, or COmmon Business Oriented Language, is a rather ancient, byt still widespread computer programming language. It is mainly used in data-driven applications, in business, government and military applications running on larger computer systems. | ||||||||||
| D | Reference document for the D programming language, which is presented as a successor to C and C++. D is a general purpose systems and applications programming language. It is a higher level language than C++, but retains the ability to write high performance code and interface directly with the operating system APIs and with hardware. | ||||||||||
| Eiffel | An object-oriented programming language with emphasis on the production of reliable software. | ||||||||||
| Euphoria | Freeware, open-source programming environment for Windows, DOS, Linux and FreeBSD. Euphoria defines a simple and powerful language with an ALGOL/BASIC like syntax. The package contains a compiler, RAD and interpreter. | ||||||||||
| Gentee | A free programming language for Windows and Linux, similar to Java and C++. A program created with Gentee has a very small footprint. Gentee comes with full documentation, a tutorial, examples and several programming libraries. | ||||||||||
| Java | Object-oriented, platform-independent, network-enabled programming language created by Sun. | ||||||||||
| JSoftware | A high-level, array-oriented, multi-purpose programming language (an APL successor).
The core language is based on a small set of simple mathematical rules with facilities for creating new
definitions. Features: Windows GUI-designer, built-in graphics and spreadsheet components, supports OLE-DB and ODBC. Available on Windows, Macintosh, Unix and Linux. Freeware version has no debugging tools. | ||||||||||
| Leopard | A programming language for beginning programmers and for those looking for simpler ways to program. | ||||||||||
| LUA | Free embeddable scripting language with Pascal like syntax, strong string manipulation functions plus easy extension. Lua provides meta-mechanisms for implementing features, as a means of allowing developers to extend the language themselves, instead of providing a host of fixed features directly in the language. Lua consists of a small library of ANSI C functions, and compiles unmodified in all known platforms. The implementation goals are simplicity, efficiency, portability, and low embedding cost. The result is a fast language engine with small footprint, making it ideal in embedded systems as well. | ||||||||||
| Miranda | Successor of the functional languages SASL and KRC | ||||||||||
| Oberon | Oberon is the name of a modern integrated software environment. It is a single-user,
multi-tasking system that runs on bare hardware or on top of a host operating system.
Oberon is also the name of a programming language in the Pascal/Modula tradition.
The Oberon project was launched in 1985 by Niklaus Wirth and Jürg Gutknecht. Although
the project was originally targeted towards in-house hardware, the language and system
have now been ported to many computer platforms and multiple CPU's. Freeware, Open Source. | ||||||||||
| Ocaml | Objective Caml is a type-inferring functional programming language descended from the ML (Meta Language) family. | ||||||||||
| Pascal | Pascal is a language initially designed for educational purposes, and very suitable for structured programming. The most famous programming tool based on Pascal is Borland's Delphi. | ||||||||||
| Revolution | Multi-platform programming tool implementing the the Mac HyperCard language. It enables you to create compiled applications for MAC OS X, classic Mac OS, Windows, Linux/Unix with native look and feel on all platforms. Avaiable editions: Free, Professional and Small Business editions. | ||||||||||
| Rexx | Procedural programming language for a variety of platforms. NetRexx enables you to compile your programs to Java bytecode .class files. | ||||||||||
| Smalltalk | Squeak, a free, open, and portable Smalltalk-80 implementation. Has a virtual machine which is also written in Smalltalk. A translation utility is available to convert the Smalltalk source code into C source code for high speed performance. Available for Windows, Mac, Unix, and other operating systems. | ||||||||||
| Wikipedia list of programming languages | A genealogy of programming languages by Wikipedia. | ||||||||||
| |||||||||||
| Concurrent Programming Tools & Languages | |||||||||||
| Languages which have formal constructs enabling parts of the program to be executed simultaneously ('in parallel') are called 'Concurrent Programming Languages'. | |||||||||||
| BMDFM | Free parallel programming environment. A parallel program created using BMDFM does not need any directives for parallel execution.
No advanced knowledge of parallel processing is needed when using BMDFM. BMDFM is freeware and runs on a variety of platforms and processors: Linux, Free BSD, Windows, Alpha, Intel, MIPS, SPARC, IA-64, RS6000, etc. | ||||||||||
| Code | CODE is a visual parallel programming system, allowing users to compose sequential programs into a parallel one.
The parallel program is a directed graph, where data flows on arcs connecting the nodes representing the
sequential programs. The sequential programs may be written in any language, and CODE will produce parallel
programs for a variety of architectures, as its model is architecture-independent. Freeware for Linux, Solaris, Cray, etc. | ||||||||||
| Intel Parallel Studio | A plugin for Microsoft Visual Studio for developing parallel software. | ||||||||||
| Intel Threading Building Blocks | A C++ template library for writing software for multi-core processors. | ||||||||||
| Modula-P | Modula-P is a structured programming language for asynchronous parallel programming (MIMD systems), developed by Thomas Bräunl in 1986. The language is based on sequential Modula-2, but extended by machine-independent parallel constructs. Modula-P allows explicit declaration and starting of processes. The language includes the classical synchronization concepts of semaphores, monitors with conditions, and remote procedure calls. | ||||||||||
| mpC | A high-level parallel language (an extension of ANSI C), designed specially to develop portable
adaptable applications for heterogeneous networks of computers. The programming system includes a compiler, a run-time support system (RTSS), a library, and a command-line user interface. The compiler translates a source mpC program into the ANSI C program with calls to functions of RTSS. RTSS manages processes, constituting the parallel program, and provides communications. Freeware for Windows and Free BSD. | ||||||||||
| Occam | Programming language especially designed for parallel computing and inter-process communication. An online tutorial for Occam can be found here: part 1 part 2 | ||||||||||
| OpenCL | OpenCL (Open Computing Language) is a parallel programming language designed to run simulations and mathematical applications on the computer's graphics card. It can also use the regular processor. OpenCL is available the MAC. Some graphics-card companies have introduced OpenCL drivers for Linux and Windows. | ||||||||||
| OpenMP | An Application Program Interface (API) which supports multi-platform shared-memory parallel programming in C/C++ and Fortran on all architectures, including Unix platforms and Windows NT platforms. Jointly defined by a group of major computer hardware and software vendors, OpenMP is a portable, scalable model that gives shared-memory parallel programmers a simple and flexible interface for developing parallel applications for platforms ranging from the desktop to the supercomputer. | ||||||||||
| Oz / Mozart | The Mozart Programming System, based on the Oz language, is an advanced development platform for intelligent, concurrent, distributed,
object-oriented applications.
The system is the result of a decade of research in programming language design and implementation, constraint-based inference,
distributed computing, and human-computer interfaces. Available for: Linux, Windows, FreeBSD, Mac. | ||||||||||
| Parallaxis III | Parallaxis is a structured programming language for data-parallel programming (SIMD systems) based on Modula-2. Runs on Linux, Solaris, HP, etc. | ||||||||||
| Parallel Programming Tools and Environments | Comprehensive listing of parallel programming projects and tools. | ||||||||||
| Paws | PAWS (Parallel Application WorkSpace) is a software infrastructure for use in connecting separate parallel
applications within a component-like model. A central PAWS Controller coordinates the linking of serial and/or
parallel applications across a network to allow them to share parallel data structures such as multidimensional arrays. Platforms: SGI IRIX 6.X, Linux . | ||||||||||
| Pict | A concurrent programming language based on the pi-calculus. | ||||||||||
| PVM | PVM (Parallel Virtual Machine) is a software package that permits a heterogeneous collection of Unix and/or Windows computers hooked together by a network to be used as a single large parallel computer. You can use C++, C and Fortran to interface with PVM. | ||||||||||
| Sieve C++ | A multicore programming system aimed at those who need to create C++ code suitable for use on a multi-core processing environment. The system consists of an extension to a C++ compiler, a multi-core linker and a runtime to schedule the processes. | ||||||||||
| Free Audio/Music Programming Languages | |||||||||||
| ChucK | An audio programming language for real-time synthesis, composition, and performance for MacOS X, Windows, and Linux. ChucK presents a new time-based concurrent programming model, which supports a more precise and fundamental level of expressiveness, as well as multiple, simultaneous, dynamic control rates, a precise and straightforward concurrent programming model, and the ability to add, remove, and modify code, on-the-fly, while the program is running, without stopping or restarting. It offers composers, researchers, and performers a powerful and flexible programming tool for building and experimenting with complex audio synthesis programs, and real-time interactive control. | ||||||||||
| cSound | Csound is a programming language designed and optimized for sound rendering and signal processing. To produce or process a soundfile with Csound, or to play a Csound instrument in real-time, one typically selects the orchestra and score through a simple "launcher" and then clicks on the "render" button to start the program compiling. | ||||||||||
| Guido | The GUIDO Music Notation Format is a formal language for score level music representation. It is a plain-text, i.e. readable and platform independent format capable of representing all information contained in conventional musical scores. The GUIDO design is strongly influenced by the objective to facilitate an adequate representation of musical material, from tiny motives up to complex symphonic scores. | ||||||||||
| jMusic | jMusic is a Java framework for computer-assisted composition, designed to provide composers and software developers with a library of compositional and audio processing tools. | ||||||||||
| OpenAL | A cross-platform 3D audio API similar to to the OpenGL graphics API. OpenAL models a collection of audio sources moving in a 3D space that are heard by a single listener somewhere in that space. The basic OpenAL objects are a Listener, a Source, and a Buffer. | ||||||||||
| Salieri | The SALIERI System is an interactive software environment for structure oriented composition, manipulation and analysis of music. It is based on the SALIERI Language, a newly developed programming language which has been designed to facilitate specification and manipulation of musical material on the score level. | ||||||||||
| SuperCollider | Open-source environment and programming language for real time audio synthesis. You can write
programs to generate or process sound in real time or non real time. SuperCollider can be controlled by MIDI,
the mouse, Wacom graphics tablet, and over a network via Open Sound Control. SuperCollider can read and
write sound files in AIFF, WAV, Sound Designer 2, and NeXT/Sun formats. Freeware, open-source. For MAC. | ||||||||||
| Compiler Construction Resources | |||||||||||
| These tools can be helpful when you want to create your own compiler and/or programming language. | |||||||||||
| Compiler construction | PDF version of the official book on compiler construction by Niklaus Wirth. | ||||||||||
| C-gen | C-gen is an educational environment to generate compilers. The user graphically defines some phases and can watch the recogntion process step-to-step. | ||||||||||
| DCG | Delphi Compiler Generator. Compiler-generator program written in Delphi/Pascal. | ||||||||||
| Eli | A programming environment consisting of a variety of standard tools implementing compiler construction strategies. With Eli one can automatically generate complete language implementations from application-oriented specifications. | ||||||||||
| GENTLE | A freeware toolkit for compiler writers and implementors of domain specific languages. It supports language recognition, definition of abstract syntax trees, construction of tree walkers based on pattern matching, smart traversal, simple unparsing for source-to-source translation, and optimal code selection for microprocessors. | ||||||||||
| PLC | PLC (Programming Language Creator) can be used to add custom scripting to any program. A basic C parser and interpreter is included, and new scripting languages can be designed easily. Freeware and non-freeware editions are available. | ||||||||||
| |||||||||||
| Related Resources | |||||||||||
| Compilers.net | News and information related to compilers, programming languages, programming tools, frameworks, etc. | ||||||||||
| ACM "Hello World" project | "Hello World" examples for around 200 programming languages. | ||||||||||
| Related Freebyte Pages | |||||||||||
| Free Assembler Programming | Free tools for the assembler programmer for a variety of platforms and processors. | ||||||||||
| Free Basic Programming | Free Basic IDE's and Compilers, free Basic Interpreters, tutorials and resources. | ||||||||||
| Free C++ (and C) Programming | Free C++ IDE's, compilers, libraries, tools, resources and tutorials for Linux/Unix, Windows, MAC, etc. | ||||||||||
| Free Cobol Programming | Free Cobol compilers, tutorials and resources. | ||||||||||
| Free Cross-Platform Programming Tools | Free programming tools, interpreters and frameworks following the principle 'create once, compile anywhere' or 'create once, run anywhere'. This means that once you have created your program using one of the tools listed on this page, you can compile or run it on multiple platforms without much (if any) adaptation. | ||||||||||
| Free Databases | Freeware and open-source SQL database systems, freeware database tools, open-source (SQL) database libraries for Java, C++, Delphi. | ||||||||||
| Free Delphi Programming | Free Delphi compilers, components, programming, libraries, tools and resources. | ||||||||||
| Free Help File Authoring | Free help-file authoring tools and programs to create WinHelp and HTMLHelp files. | ||||||||||
| Free Java Programming | Free Java IDE's, compilers, object libraries, distribution and install tools, database systems, and tutorials. | ||||||||||
| Free Operating Systems | Free operating systems, such as: Linux, FreeBSD, Windows clones, emulators and much more. Also: interesting alternative commercial operating systems. | ||||||||||
| Free Pascal Programming | Free pascal compilers, tutorials, tools and resources. | ||||||||||
| Free Programming Tools | Free programming tools for Windows, Linux, etc. Free C++, C, Delphi, Basic, Assembler, Cobol, Pascal, Java, SQL, Databases; links to free compilers, databases, interpreters, IDE's, installers, components, libraries, languages, helpfile generators and more. | ||||||||||
| Free Unicode and Multi-lingual Programming tools | Free C++, Delphi and Java Unicode Libraries, free fonts and font-engines, free unicode resources and related information. | ||||||||||
| Free Web-Programming | Free Web programming languages, free server-side scripting, client-side scripting, Web scripts, Web programming tutorials and resources. | ||||||||||
| Information wanted! | |||||||||||
| If you know of any good free programming tools, like compilers, databases, assemblers/disassemblers, components, libraries, languages, online books, help tools, icons, websites, which are not listed in the Freebyte programming section, please let us know! | |||||||||||
| About this page | |||||||||||
| Last updated on June 18, 2009
Copyright:
Freebyte.com If you have any comments about this page, | |||||||||||
|
Copyright © 1995-2009 Freebyte.com. All rights reserved. Freebyte.com is hosted by Godaddy.com |