Skip to content

Programming Languages

List of Programming Languages

LanguageApplication AreaParadigmYearCreatorOrigin of Name
FORTRANScientific and Engineering ApplicationsProcedural1957John W. Backus at IBMFORmula TRAnslating System
LISPArtificial IntelligenceFunctional1958John McCarthy (designed), Steve Russell (implemented)LISt Processing
COBOLBusiness data processingProcedural1959The CODASYL CommitteeCommon Business-Oriented Language
PascalTeaching ProgrammingProcedural1970Niklaus Wirth, Kathleen JensenBlaise Pascal
CSystem ProgrammingProcedural1972Dennis Ritchiepredecessor language was named B
PrologArtificial IntelligenceLogic1972Alain ColmerauerPROgrammation en LOgique (French)
SQLDatabase ManagementDeclarative1974Donald D. Chamberlin, Raymond F. Boyce at IBMStructured Query Language
Bourne Shell (sh)System AdministrationProcedural1977Stephen R. BourneStephen R. Bourne
AdaReal-time systemsMulti-paradigm1980Jean Ichbiah at CII Honeywell BullAda Lovelace
SmalltalkObject-Oriented Programming (GUI)Object-Oriented1980Adele Goldberg, Dan Ingalls, Alan Kay at Xerox PARCObjects “talk” to one another via messages
MATLABNumerical ComputingMulti-paradigm1984Cleve MolerMATrix LABoratory
LaTeXTypesettingMacro1985Leslie LamportLamport's TeX
C++System Programming, Game DevelopmentMulti-paradigm1985Bjarne StroustrupIncremental modification of C (++ is the C increment operator)
PerlSystem Administration, Web DevelopmentMulti-paradigm1987Larry WallPractical Extraction and Reporting Language
HaskellFunctional ProgrammingFunctional1990Simon Peyton JonesHaskell Curry, a logician
PythonWeb Development, Data Science, Machine LearningMulti-paradigm1991Guido van RossumMonty Python comedy group
LuaGame Development, Web DevelopmentMulti-paradigm1993Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar CelesMoon in Portuguese
JavaWeb Development, Android DevelopmentObject-Oriented1995James Gosling at Sun MicrosystemsNamed after the coffee
JavaScriptWeb Development, Game DevelopmentMulti-paradigm1995Brendan Eich at NetscapeJavaScript is not related to Java
PHPWeb DevelopmentMulti-paradigm1995Rasmus LerdorfPersonal Home Page (PHP: Hypertext Preprocessor)
RubyWeb DevelopmentMulti-paradigm1995Yukihiro MatsumotoRuby is a gemstone
CSSWeb DevelopmentDeclarative1996Håkon Wium Lie, Bert BosCascading Style Sheets
C#Web Development, Game DevelopmentMulti-paradigm2000Anders Hejlsberg, Microsoft (ECMA)Pronounced as C sharp
GoSystem Programming, Web DevelopmentMulti-paradigm2009Robert Griesemer, Rob Pike, Ken Thompson at GoogleGo is a common English word
RustSystem ProgrammingMulti-paradigm2010Graydon Hoare at MozillaRust is a fungus
KotlinAndroid DevelopmentMulti-paradigm2011JetBrainsNamed after Kotlin Island
TypeScriptWeb DevelopmentMulti-paradigm2012Anders Hejlsberg, MicrosoftTypeScript is a superset of JavaScript
ZigSystem ProgrammingMulti-paradigm2016Andrew KelleyZig is a programming language

Programming Language Paradigms

Read more about Programming Paradigms

Source Files

A source file is a file containing code, written in a particular programming language, that is used to create a program. Source files are typically text files, containing text that is readable by humans. Source files are usually stored on disk, and are read by the compiler or interpreter to create the program

Compiler

A compiler is a program that translates source code into object code. The compiler reads the source file, and generates an object file containing machine code. The compiler also performs other tasks, such as syntax checking, optimization, and code generation

Interpreter

An interpreter is a program that reads source code and executes it directly. The interpreter reads the source file, and executes the code line by line. The interpreter also performs other tasks, such as syntax checking, optimization, and code generation

Object Files

An object file is a file containing machine code, created by the compiler from the source file. Object files are typically binary files, containing machine code that is not readable by humans. Object files are usually stored on disk, and are read by the linker to create the program

Linker

A linker is a program that combines object files into an executable file. The linker resolves references between object files, and combines them into a single executable file. The linker also performs other tasks, such as allocating memory for variables, and setting up the program's entry point

Executable Files

An executable file is a file containing machine code, created by the linker from the object files. Executable files are typically binary files, containing machine code that is not readable by humans. Executable files are usually stored on disk, and are run by the operating system to create the program

Loader

A loader is a program that loads an executable file into memory, and starts its execution. The loader reads the executable file from disk, and loads it into memory. The loader also performs other tasks, such as setting up the program's stack and heap, and initializing the program's data

Syntax and Semantics

Grammar rules of a programming language are called syntax. Semantics is the meaning of the syntax

Programming Language Paradigms

Resources