Resource on Computer Languages
Here is a resource on computer languages and its acronyms explaining the basics and histories of each. The huge mainframes that housed the computer processors of the 1950s and 60s seem incongruous with today’s netbooks and microservers. Computing hardware certainly has come a long way since then, providing us with iPads and mobile devices much more capable than some of the first computers. Computers cannot function on hardware alone, however. Software development has progressed alongside the development of computer hardware. While hardware provides the user with a physical interface to manipulate computer operation, software achieves this goal invisibly. As a behind-the-scenes technology, programming languages remain a highly specialized and professional area of study. Most modern computer users understand different programs achieve different goals, but know little about how different programming languages allow different functionalities. The earliest form of a programming language was developed by Herman Hollerith, who devised a way for machines to read punch cards. As punch cards had to be coded differently for different applications, early computer programs had limited functionality and were useful mainly for large calculations and database operations.
Konrad Zuse developed the first modern computing language, Plankalkul, in 1943, although it was not implemented in his lifetime. The ‘40s and ‘50s saw huge developments in computer languages in the form of ALGOL 60, COBOL and FORTRAN. Each of these languages focused on different applications, from numerical to robotic movements, although they allowed more general implementation than the punch card systems of the past. Programmers soon saw the incompatibility between different machines as problematic and developed new languages to address a wider variety of computer applications. The development of the personal computer spurred this effort to create consolidated languages that would work on a variety of machines and offer translation capabilities. The internet brought about many changes to programming languages. Web developers needed fast, reliable and simple programs that would not monopolize bandwidth resources. JavaScript, PHP and Ruby empowered web developers to create new applets for use on the web. Modularity also became popular as programmers needed to add functionality to their code without switching to a new language entirely. Languages often focus on a particular aspect of programming in order to maximize their utility. Each programming language has its own limitations and strengths in developing software. Many recent developments in programming have come from open source ideologies, where developers make the source code available publicly for anyone to improve upon. Countless computer languages have been developed throughout the computing age to satisfy the many needs of computer users and more are under development.
New programming languages often adapt from or act as improvements too previous developments. In this way programming languages can be organized into families of relation. These family trees often resemble the genealogical studies of spoken languages, with each earlier development producing many variants. Here is a list of popular languages and languages fundamental to the progression of software development as a whole.
ABC
- A Short Introduction to the ABC Language - A guide to the ABC computer language including a command reference.
Ada
- Ada Home - The official website for Ada, a programming language designed for sound engineering.
- Ada Power – Provides resources including code snippets for Ada programs to learn the functions of the language.
- Special Interest Group on Ada – A group for the promotion and development of the Ada programming language.
- Ada Information Clearinghouse – News on developments in Ada programming and resources for education in the language.
- The Ada Programming Language – A basic overview and history of the Ada language with sample programs.
- History of the Ada Programming Language – A detailed history of the development of Ada.
- Ada Computer Language Resources - Great information for learning about all parts of the Ada programming language.
ALGOL
- The ALGOL Programming Language - A quick history and general overview of ALGOL and its uses.
- The History of the ALGOL Effort – A detailed PDF on the history of the ALGOL effort and its goals.
- ALGOL 60 – A short article on the history and functions of the ALGOL language.
AWK
- The AWK Programming Language – Details on one of the best guides to the Awk language in print.
- An Awk Primer – Guide to Awk operations and examples of Awk programs.
- AWK Language Programming – In-depth programming instructions with many functions and examples.
- Effective Awk Programming - A guide by GNU on programming in Awk.
APL
- Apl Language – An introduction to the Apl language and its strange character system.
- APL – A general overview of Apl including some basic programs and their functions
- A Programming Language – Describes Apl and its powerful succinctness.
B
- The Programming Language B – Describes this programming language for non-numeric applications.
- User’s Reference to B – A guide to many of the different functions of B, with helpful code snippets.
BASIC
- Visual BASIC Instinct – Provides information on all aspects of Visual BASIC to aid programmers.
- Visual BASIC and Visual BASIC .NET Resources – A ton of resources for anything you need to know about Visual BASIC.
- True BASIC - The developers of the True BASIC language with up to date versions.
- REALbasic – A BASIC-based web development platform.
- BASIC Programming Tutorial – A nice tutorial to build a BASIC program.
BCPL
- BCPL Reference Manual – A 1967 copy of the BCPL Reference Manual with functions and instructions for use.
- A Briefish Description of BCPL – A history of BCPL along with some useful commands and declarations.
C
- The Development of the C Language - A detailed history of the development of the C programming language.
- Very Early C Compilers and Language – A look into the problems experienced early in C development.
- The C Programming Language – The authoritative book on C, available in many of the world’s languages.
- C Programming Course – A comprehensive course in C programming with many resources for various subjects.
- C Programming – Great materials to get started with C programming and clear out the cobwebs.
C++
- The C++ Programming Language -A foundational book in learning C++ with some material available online.
- C and C++: Siblings – Describes the relationship and incompatibilities between C and C++.
- C++0X – the Next ISO C++ Standard – A guide to the current revision of C++.
- The C++ Programming Language – A comprehensive list of resources on C++ programming.
C#
- Visual C# Language – A brief overview of Microsoft’s C# language for .NET frameworks.
- C# Station – Features a tutorial and many resources on C sharp programming.
Caml
- The Caml Language - Overview of the Caml language with many resources on its structure.
- Objective Caml - A version of the Caml language specifically designed for object-oriented programming.
- Introduction to the Objective Caml Language – A beginner’s book for orientation with Caml.
CLU
- CLU Homepage – The official site for the CLU programming language.
COBOL
- IBM COBOL Family – Compiling software for working within the COBOL language.
- COBOL Portal – Resources and links for many aspects of coding with COBOL.
- Tiny COBOL - Formerly a free COBOL compiler with COBOL 85 standards, now suspended.
- COBOL User Groups – A great source for COBOL resources, from software to examples.
Coral
- Coral66 - A compiler allowing many languages to be used together in one program.
- Coral66 Reference Manual - A great reference book for the Coral programmer.
CPL
- Wikipedia: CPL - A brief history of the Combined Programming Language.
Delphi
- A Brief History of Borland’s Delphi - An overview of the Pascal language which evolved into Delphi.
- The Delphi Programming Language – A overview of Delphi with a couple sample programs included.
Eiffel
- Eiffel Development Framework – The consumer product suite for Eiffel software development including productivity tools.
- SmartEiffel – A freeware Eiffel compiler compatible with GNU OS.
- Eiffel Programming Language - An overview of Eiffel and its strengths at simplifying large projects.
- Eiffel Reference - A downloadable reference guide to the Eiffel language.
FlowMatic
- FLOW-MATIC, COBOL’s Roots – Describes FlowMatic as the basis for the development of the COBOL language.
- Rand-Remington UNIVAC Flow-Matic – Advertisement from the 1950s on the Remington computer model and its use of the Flow-Matic language.
- Wikipedia: Flow-Matic – A basic overview of the Flow-Matic language including a sample program.
Forth
- Forth Interest Group – A nonprofit interest group dedicated to providing programmers with information on the Forth language.
- Forth Programming Language – A brief overview of Forth and its potential for AI applications followed by links to some of the best Forth information on the web.
Fortran
- User Notes on FORTRAN Programming – A guide to programming in FORTRAN including reference tables and conceptual explanations.
- Fortran 2000 Draft – The official documentation on the FORTRAN language as of the year 2000.
- The FORTRAN Programming Language – An overview of the FORTRAN language with “Hello World!” sample program and links.
- Programming in FORTRAN – A guide to programming in FORTRAN with exercises to test your ability.
Haskell
- Haskell Wiki – The official page on Haskell development and implementation with information on its application.
- Beginning with the Haskell Programming Language – A beginner’s guide to Haskell that also serves as a tutorial for basic skills.
- A History of Haskell: Being Lazy with Class – Interesting information on the history of Haskell and its goals for programming.
Icon
- The Icon Programming Language – The official site of Icon, with history, compilers and the latest build.
- Unicon – An expansion of the Icon language with more functionality for modern programming.
- Icon Programming Language Handbook – A reference guide to Icon’s functionality with helpful sample programs.
J
- JSoftware - The official site for the J programming language with downloads and forums provide for assistance.
- Functional Programming and the J Programming Language – A guide to functional programming with examples from the J programming language.
Java
- Oracle – The current developers of the Java platform, one of the most common languages used in web development.
- Programming Languages for the Java Virtual Machine – A list of programming languages compatible with the Java Virtual Machine.
- Java Programming Language Overview – An overview of Java with code samples and applications for the beginning programmer.
- The Java Programming Language – A historical look at Java and its strengths including a handful of sample applications.
JavaScript
- JavaScript Language Resources - Standardized reference guides for current and outdated versions of JavaScript.
- Standard ECMA-262 – The current version of JavaScript released in December, 2009.
- JavaScript: The World’s Most Misunderstood Programming Language- A disambiguation of Java and JavaScript and analysis of JavaScript’s strengths.
- Douglas Crockford’s JavaScript – A ton of resources covering many topics about JavaScript.
Lisp
- An Introduction and Tutorial for Common Lisp – A guide for beginners to Lisp with resources from all over the web.
- The Lisp Programming Language – A history of Lisp development with provided sample programs.
Mainsail
- Mainsail Implementation Overview – A guide on implementing Mainsail and its dependencies.
- Mainsail Overview – A brief history of Mainsail and explanation of how it differs from other languages.
- Mainsail Language Manual – The definitive reference guide to the Mainsail programming language.
M MUMPS
- M Technologies – The developers of the M programming language for database scripting.
ML
- Standard ML – A description of Standard ML and its benefits for use in programming.
- Standard ML ’97 – An updated version of Standard ML with links to helpful textbooks and online resources.
Modula
- Modula 2 - The official page for Modula 2 standards and specifications.
- The Programming Language Modula-2 – An overview and reference guide for the Modula 2 language.
Oberon
- A Description of the Oberon-2 Language – A guide to the different constructions and syntactic relations of Oberon 2.
- The Programming Language Oberon-2 – Defines the Oberon-2 language and the structures it employs.
- Oberon Language Genealogy Tree – A tree representing the linguistic evolution of Oberon from the ALGOL programming language.
- The Oberon Community Platform – A user and developer oriented forum for information on the Oberon language family.
Objective-C
- Apple Objective-C Definition – Apple’s user guide to Objective-C with reference materials for easy lookup.
- Beginner’s Guide to Objective-C Programming – An excellent guide for anyone new to Objective-C.
Pascal
- Pascal Programming – An interactive lesson plan designed to teach the basics of the Pascal language.
- The Pascal Programming Language – An overview of Pascal and its applications with sample programs.
Perl
- Perl Home Page – The home of Perl on the web with sample code for a variety of programs and downloadable platform.
- The PERL Programming Language - An overview of the Perl language, sample programs and additional resources for browsing.
PHP
- PHP: Hypertext Processor -The official site for PHP, one of the most common languages used in web development.
- PHP Tutorial – A tutorial on scripting using PHP, categorized by application.
- The PHP Programming Language - A list of PHP applications and their uses.
PL/I
- Multics PL/I – A history of PL/I as it relates to Multics software development.
- IBM PL/I Family - IBM’s family of PL/I compilers for use in different applications.
- The PL/I Programming Language - An overview of PL/I, sample applications and links to online resources.
- The PL/I Language – Tons of resources on PL/I including compilers, print resources and a virtual reference guide.
Plankalkul
- The “Plankalkul” of Konrad Zuse - An analysis of Plankalkul as it relates to modern programming languages.
PostScript
- Adobe PostScript Level 3 – The official site for PostScript development and news.
- PostScript and GhostScript Resources - A guide to printers using PostScript and GhostScript applications as well as PostScript history.
- GhostScript Homepage – The homepage of GhostScript, a PostScript interpreter, with downloads of different versions.
Prolog
- Prolog Programming Language – An overview of Prolog and its uses in computing with sample applications and additional links.
- The Prolog Language – A detailed guide on Prolog syntax and constructions.
Python
- Python Homepage – The official site for Python featuring downloads for many platforms and documentation.
- The Python Programming Language – An overview of Python and its strengths with sample applications.
Rexx
- The IBM Rexx Family – The official distributor of the Rexx language and related compilers and tools.
- The Rexx Language Association - A community for programmers working in the Rexx language to share knowledge.
Ruby
- Ruby Homepage – The official page for Ruby software development information.
- Ruby-Doc – A site for Ruby documentation and help for programmers.
- RubySyntax – Site devoted to Ruby syntax with a helpful tutorial to get started.
Sather
- Sather History - The development of Sather at UC Berkeley and its reception by programmers.
- Sather Homepage – The official site of Sather with documentation and compiler downloads.
Scheme
- Scheme Homepage – MIT’s homepage for Scheme with documentation and other resources.
- Schemers – A community of Scheme programmers with great reference materials.
- The SCM Implementation of Scheme - An implementation of Scheme designed to translate Scheme and C.
Self
- Self Homepage – The official site for Oracle’s Self language with reference documents and related links.
- Self-Interest – A Yahoo newsgroup for Self developers to share knowledge.
Sh
- The Traditional Bourne Shell Family – Describes the Bourne shell and its derivatives which have been instrumental in OS development since the seventh edition of Unix.
- KornShell – A mix of C shell and Bourne shell features providing programming capabilities and Unix commands.
- Bash – A shell for use with the GNU OS with features seen in C shell and KornShell.
Simula
- The Simula Programming Language – An overview of Simula and its difference from ALGOL 60.
Smalltalk
- Smalltalk Homepage – The official site of Smalltalk, a language based in message passing.
- Smalltalk FAQ – Answers to common questions about the Smalltalk language.
- Smalltalk Programming Language - An overview of Smalltalk’s strengths and links to other resources.
SNOBOL
- SNOBOL4 Resources – A history of SNOBOL implementations and links to SNOBOL related sites.
- The SNOBOL4 Programming Language - A guide to SNOBOL syntax and operators in PDF format.
- The SNOBOL Programming Language – A basic overview of SNOBOL with sample programs and language features.
Tcl/Tk
- Tcl Developer Site – Information on Tcl including documentation and software compilers.
- Introduction to the Tcl Programming Language - A university course on Tcl with programming exercises to aid learning.