Freebyte's Guide to...
Free Programming
  Home   Search   Site map


Free Programming Languages
Concurrent Programming Tools & Languages
Free Audio/Music Programming Languages
Compiler Construction Resources
Related Resources
Related Freebyte Pages
Information wanted!
About this page
Office and desktop
Software and utilities
System and computer
Internet and communication
Technology, science
Music & art
Business and Finance
Free Programming Languages
ABCABC 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.
APLVery 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.
AssemblyAssembly (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.
BasicBasic 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).
BASICOA 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++ / CC++ (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.
CleanFunctional 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.
ClipperHarbour is a free open-source compiler for the xBase superset language often referred to as Clipper. Runs on Windows, DOS, Linux and OS/2.
CobolCobol, 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.
DReference 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.
EiffelAn object-oriented programming language with emphasis on the production of reliable software.
EuphoriaFreeware, 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.
GenteeA 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.
HaskellA purely functional programming language.
  The Glasgow Haskell Compiler
  Hugs bytecode compiler
  nhc98 bytecode compiler
  Yhc bytecode compiler
  A Gentle Introduction to Haskell 98
  Real World Haskell
  Learn You a Haskell for Great Good!
  The Haskell Cheatsheet
JavaObject-oriented, platform-independent, network-enabled programming language created by Sun.
JSoftwareA 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.
LeopardA programming language for beginning programmers and for those looking for simpler ways to program.
LUAFree 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.
MirandaSuccessor of the functional languages SASL and KRC
NaaLaaNaaLaa (= Not An Advanced Language At All) is an easy-to-learn BASIC-style programming language. One can also see NaaLaa as an introduction to simple and traditional game programming, in the style of Amiga AMOS and Atari STOS.
OberonOberon 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.
OcamlObjective Caml is a type-inferring functional programming language descended from the ML (Meta Language) family.
PascalPascal is a language initially designed for educational purposes, and very suitable for structured programming and maintainability. The most famous programming tools based on Pascal are Free Pascal, Lazarus, and Delphi.
RevolutionMulti-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.
RexxProcedural programming language for a variety of platforms. NetRexx enables you to compile your programs to Java bytecode .class files.
RubyAn object-oriented and interpreted programming language with a focus on simplicity and productivity.
SchemeA minimalist dialect of Lisp.
SmalltalkSqueak, 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.
TreePad X Enterprise
384 Gigabyte Personal Information Manager and Word Processor.
Intuitive and versatile, including Website Generator, spellchecker, thesaurus, attachments, search engine, recycle bin, and much more! For Windows and Linux/Wine.
Click here to get the free evaluation version.
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'.
BMDFMFree 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.
CodeCODE 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.
ErlangAn open-source general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson.
Intel Parallel StudioA 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-PModula-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.
mpCA 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.
OccamProgramming language especially designed for parallel computing and inter-process communication.
An online tutorial for Occam can be found here:
part 1
part 2
OpenCLOpenCL (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.
OpenMPAn 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 / MozartThe 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 IIIParallaxis 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.
PawsPAWS (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 .
PictA concurrent programming language based on the pi-calculus.
PVMPVM (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
ChucKAn 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.
cSoundCsound 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.
GuidoThe 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.
jMusicjMusic is a Java framework for computer-assisted composition, designed to provide composers and software developers with a library of compositional and audio processing tools.
OpenALA 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.
SuperColliderOpen-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 constructionPDF version of the official book on compiler construction by Niklaus Wirth.
C-genC-gen is an educational environment to generate compilers. The user graphically defines some phases and can watch the recogntion process step-to-step.
DCGDelphi Compiler Generator. Compiler-generator program written in Delphi/Pascal.
EliA 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.
GENTLEA 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.
PLCPLC (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.
Get Organized and download TreePad

Related Resources
Compilers.netNews 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
Free tools for the assembler programmer for a variety of platforms and processors.
Free Basic ProgrammingFree Basic IDE's and Compilers, free Basic Interpreters, tutorials and resources.
Free C++ (and C)
Free C++ IDE's, compilers, libraries, tools, resources and tutorials for Linux/Unix, Windows, MAC, etc.
Free Cobol
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 DatabasesFreeware and open-source SQL database systems, freeware database tools, open-source (SQL) database libraries for Java, C++, Delphi.
Free Delphi
Free Delphi compilers, components, programming, libraries, tools and resources.
Free Help File
Free help-file authoring tools and programs to create WinHelp and HTMLHelp files.
Free Java ProgrammingFree Java IDE's, compilers, object libraries, distribution and install tools, database systems, and tutorials.
Free Operating SystemsFree operating systems, such as: Linux, FreeBSD, Windows clones, emulators and much more. Also: interesting alternative commercial operating systems.
Free Pascal
Free pascal compilers, tutorials, tools and resources.
Free Programming ToolsFree 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
Programming tools
Free C++, Delphi and Java Unicode Libraries, free fonts and font-engines, free unicode resources and related information.
Free Web DevelopmentFree Web design and Web development tools. Free scripts, templates, tutorials and other resources. Free and easy-install Web servers (Apache + MySQL + PHP + more) for Linux, Windows, MAC.
Also check out our free software
for Windows and Linux/wine!
TreePad LiteFree organizer/information manager
exe-eBook CreatorFree eBook compiler
Freebyte BackupFree backup program
Fast File RenamerFree multiple file renaming tool
Custom Addressbook LiteFree addressbook
DisktectiveFree Disk-space reporting tool
HJSplitFreeware file splitters - multiplatform
Harddisk Search and StatsFree search engine for your harddisk
Freebyte ZIPFree zip/unzip program
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 November 13, 2010

Almere, the Netherlands

If you have any comments about this page,
please mail us here

Copyright ©  1995-2012
All rights reserved. is hosted by HostGator