Wikibooks:Programming languages bookshelf


Biology | Computer Science | Computer Software | Education | Health science | History | Humanities | Language and Literature | Languages | Law | Mathematics | Natural Sciences | Physics | Programming Languages | Social Sciences | Study Guides | Misc. | Wikibooks Help

Note: If you can't find what you're looking for here, check:


Note to the editors:
You can now use syntax highlighting for all the source code examples by wrapping it with the syntaxhighlight tag:

 <syntaxhighlight lang="languageName">

if the language is supported by Pygments library for syntax highlighting


Ada – Bourne Shell Scripting

Ada Programming is a tutorial teaching the Ada programming language. Ada puts unique emphasis on, and provides strong support for, good software engineering practices that scale well to very large software systems (millions of lines of code, and very large development teams).

C – FPI Script

C is a system programming language and has a fairly simple syntax and a small set of keywords but with an extensive set of rules attached to those. It is also one of the most used languages. C is pretty much as low-level a programming language as you can get before assembly language. C was originally designed to program operating systems - specifically, it was designed to implement UNIX. It compiles to very small executables and it is used extensively in embedded systems with limited memory. C is the basis for, or has greatly influenced many modern programming languages such as Java, C#, PHP, and Python.

C++ is a general purpose, multi-paradigm mid-level programming language


C# is a relatively new object-oriented programming language very similar to Java and is one of the four built-in languages for the .NET Framework by Microsoft. The Mono Project has also implemented much of .NET for other Operating Systems, such as Linux, BSD and OS X. C# incorporates its features from C++, Java and also addresses their shortcomings.
D is a programming language created by Walter Bright and available at Digital Mars. It's a C++ derivative with emphasis on execution efficiency, simple semantic models and safe features. D is a multi-paradigm language featuring garbage collection and contracts. Support for functional programming is under development. There is a comparison table available to show some of the features of D compared to well-established ones.
Eiffel is a pure real-world object-oriented language designed as such from the ground up in the early 1980s by Bertrand Meyer. It embodies several formal techniques, such as the use of assertions making them accessible to the programmer and designer in an integrated technique called design by contract, used to break down the functionality of software into cooperating modules (classes). The correct interaction of these modules is checked by the use of preconditions, postconditions, and class invariants, integrated with the exception handling mechanism. Eiffel incorporates an elegant design of multiple inheritance and generics.
Elm is a strong-typed reactive functional programming language for declaratively creating graphical user interfaces. It compiles to Javascript so that programs can be shown in web browsers.

Gambas – Lush

Haskell is a lazy functional programming language with a state of the art type system. This tutorial aims to be friendly enough for new programmers, yet deep enough to challenge the most experienced.

In this advanced Haskell tutorial we'll implement a significant subset of Scheme. We assume no prior Haskell knowledge, but progress quickly. If you're feeling ambitious, why not Write Yourself a Scheme in 48 Hours?
Java is an Object-Oriented Programming language, which can be used to teach the benefits of OO design and development, as well as advanced concepts as concurrent programming, exception handling and garbage collection (automatic memory management).

Mathematica – Perl

Objective-C adds object-oriented features to C. The object-oriented model is based the SmallTalk model. Objective-C was developed by Brad Cox and was adopted by NeXT and so became the main language for programming MacOS and Cocoa.
Initially, Pascal was a hypothetical language intended to teach students structured programming, and generations of students have "cut their teeth" on Pascal as an introductory language in undergraduate courses. Pascal was developed by Niklaus Wirth, who also developed Modula and Oberon as more real-world languages. Variants of Pascal are still widely used today, both in education and software development.
The Performance Guide gives all developer, programmers and architects information to create performant application.
Perl is an interpreted language. It is commonly used as a text manipulation, reporting, glue, and as a general programming language. Its availability on multiple computer platforms has led to its use as a cross-platform development tool. In the Unix environments it is often used as a substitute for shell scripting.

PHP – XForms

PHP is a server side language that is used in the development of dynamic webpages. PHP syntax is very similar to C syntax. PHP usually uses the MySQL database server to load page information, although it can connect to other database servers like Oracle or Microsoft SQL Server. PHP was originally based on Perl.
Prolog is a language based on first-order predicate calculus - a system of expressing mathematical logic. In contrast to the more popular axiom of definitive programming, Prolog programs are declarative, which means that programmer declares a set of rules and facts and the user asks questions. It is the machine task to find a way of answering the question using the rules and facts. Learning Prolog will allow you to better understand computer assisted analysis of natural-language sentences and enhance your abilities as artificial-intelligence programmer.
Python has a very clean and readable syntax and is run through an interpreter, which makes it easy to play with small examples, the downside of this dynamism being that Python programs typically require much more testing than in other languages[citation needed]. It is used for many real world, large scale projects such as MayaVi, Google, and Zope, and has been employed by organizations such as NASA for coordinating large banks of computers--a task Python has proven well-suited for.
This book is a tutorial designed to be an introduction to the Python programming language. This guide is for someone with no programming experience, and because Python is considered to be a very good beginner's language, it may also serve as a general introduction to programming.
This book is a tutorial designed to be an introduction to the Python 3.0 programming language. This guide is for someone with no programming experience, and because Python is considered to be a very good beginner's language, it may also serve as a general introduction to programming. Python 3.0 and Python 2.x are different enough that the Non-Programmer's Tutorial for Python 2.6 has been converted to a new Python 3.0 tutorial.
Ruby is a reflective, object-oriented programming language. It combines syntax inspired by Ada and Perl with Smalltalk-like object-oriented features, and also shares some features with Python, Lisp, Dylan and CLU. Ruby is a single-pass interpreted language. Ruby is said to follow the principle of least surprise (POLS), meaning that the language typically behaves intuitively or as the programmer assumes it should. Yukihiro Matsumoto, the developer of the Ruby language, noted that his primary design consideration was to make programmers happy by reducing the menial work they must do, following the principles of good user interface design. Currently, the Ruby on Rails framework has been getting much attention from the web development community for the ease and speed it provides in developing database-driven web applications.
  • SAS
  • Scriptol   (Mar 6, 2006)
  • Scheme
  • Scratch -   (May 27, 2007) Scratch is a graphical "block-based" programming language derived from Smalltalk, but oriented toward teaching children fundamental computer programming concepts. The reference version of this language is written in Squeak, another derivative of Smalltalk.
  • Smalltalk -   (Oct 10, 2005)
  • Stata
  • Sway
  • Tcl -   (Oct 10, 2005) Tcl (Tool Command Language) is a dynamic programming/scripting language based on concepts of Lisp, C, and Unix shells. It can be used interactively, or by running scripts (programs). Traditionally procedural in style, it is very easy to use concepts of functional or object-oriented programming. Tcl is open source, BSD-licensed, and runs on most platforms.
  • TI-Basic 84 Programming -   (Sept 28, 2007)
  • TI-Basic 89 Programming
  • Vala Programming
  • Visual Basic Classic -   (Aug 14, 2005)
  • Visual Basic .NET -   (Aug 14, 2005)
  • XForms -   (Feb 26, 2007)

Categorized by Paradigm

A brief description of each language is provided in the alphabetical listing, if available.

Functional programming languages

Description of "Functional programming"
in wikibooks, in wikipedia.

Imperative, procedural programming languages

Description of "imperative programming"
in wikibooks, in wikipedia.
Description of "procedural programming"
in wikibooks, in wikipedia.

For more imperative and procedural programming languages look at Multi-paradigm languages

Logic programming languages

Description of "Logic programming"
in wikipedia.

Multi-paradigm languages

Description of "Multi-paradigm programming"
in wikipedia.

Object-oriented programming languages

Description of "Object-oriented programming"
in wikibooks, in wikipedia.

For more Object-oriented programming languages look at Multi-paradigm languages

Design by Contract

Description of "Design by Contract"
in wikibooks, in wikipedia.

Categorized by Operating System

Almost all programming languages are operating system independent and even the languages named here are often ported to operating system foreign to them.


Microsoft Windows

Unix Compatible Systems