Skip to content
Search

Programming language

lastmod 2026-04-20created 2015-04-0429 edits

A programming language is a language for writing software that runs computer systems. The higher-level the language, the closer it is to the languages humans use.

In everyday usage, the term often refers to software that supports a programming language, that is, software for writing software, and in this case the programming language and the software are not distinguished, and the software itself is regarded as a programming language. For example, Delphi is merely software for writing software that supports the programming language Object Pascal, but Delphi is more often regarded as a separate programming language.

Category

Bruce Tate's Seven Languages

  1. Korean: 루비 - Flexible yet powerful dynamic typing
  2. Io - The prototype system at the core of JavaScript
  3. Korean: 프롤로그 - Pattern matching, which strongly influenced the development of Scala and Erlang
  4. Korean: 스칼라 - The actor model underpinning concurrency design
  5. Korean: 얼랭 - The ‘Let it crash’ strategy for building fault-tolerant systems
  6. Korean: 클로저 - Solving concurrency problems through versioning
  7. Korean: 하스켈 - Pure functional programming

The seven programming ur-languages (2022)

  • The seven programming ur-languages (2022) | GeekNews
  • Differences in bundles of fundamental patterns matter more than individual syntax, and programming languages divide into seven ur-languages by how they handle iteration, recursion, and composition
  • ALGOL, Lisp, ML, Self, Forth, APL, and Prolog are the core categories; each family takes a representative language as its reference specimen for judging the lineage of other languages

Low-level programming language

A low-level programming language is a programming language that can be processed directly inside the computer, generally referring to machine code and assembly language. It is powerful, but its drawback is that it is hard to learn, and today it is not used except in special cases. The opposite of low-level languages is high-level programming languages.

High-level programming language

A high-level programming language is a programming language written to be easy for humans to understand, with the advantages of higher readability and simpler handling than low-level programming languages. It is translated into a low-level programming language by a compiler or interpreter and then executed. Most programming languages, such as the C language, Java, and BASIC, are high-level languages.

Comparison of programming language usage

Language

Execution model

Influenced by

Programming paradigm

Type system

Appeared

Korean: 에이다

Compiler

ALGOL (Ada 83), Korean: 파스칼, C++ (Ada 95), Smalltalk (Ada 95), Java (Ada 2005)

Concurrent, distributed, generic, imperative, object-oriented

static, strong, safe, nominative

1983

ALGOL

Compiler

Imperative

static, strong, safe

1958

ALGOL 60

Compiler

ALGOL 58

Imperative

static and dynamic typing, strong, safe

1960

ALGOL 68

Interpreter / compiler / JIT compiler

ALGOL 60

Concurrent, imperative

static and dynamic typing, strong, safe, structural

1968

APL

Mostly interpreter, some compiler

Array-oriented

1964

B

Interpreter, compiler

BCPL, Bon

Imperative

1969

BASIC

Interpreter, compiler

1963

C

Compiler

ALGOL 68, B

Imperative, flow-driven

static, weak, unsafe

1973

C++

Compiler

C, Simula, ALGOL 68

Imperative, object-oriented, generic, multi-platform

static, strong, unsafe, nominative

1985

C#

JIT compiler

Delphi, Java, C++, Python

Imperative, object-oriented, generic

static, strong, both safe and unsafe

2000

COBOL

Compiler

FLOW-MATIC, COMTRAN

Imperative, object-oriented

weak/strong

1959

ColdFusion

JIT compiler

HTML

Procedural, functional, object-oriented

dynamic (duck typing), weak

1995

Common Lisp

Compiler

Korean: 리스프, Smalltalk

Imperative, functional, object-oriented

dynamic, strong, safe

1984

D

Compiler

C , C++, Java, C#

Imperative, object-oriented, generic

static, strong, unsafe, contracts

2000

Eiffel

Compiler

Korean: 에이다, Simula

Imperative, object-oriented, generic

static, strong, safe, nominative, contracts

1985

Korean: 얼랭

Compiler / interpreter / JIT compiler

Korean: 프롤로그, Ericsson Pascal, CSP

Functional, concurrent, distributed, multi-platform

dynamic, weak

1987

F#

JIT compiler

C#, Objective Caml

Functional, object-oriented, imperative, generic

static, strong, safe, nominative, type inference

2005

Forth

Interpreter / compiler

RPN, assembly language

Imperative, stack-oriented

typeless

1977

Fortran

Compiler

APL (Fortran 90), ALGOL 68 (Fortran 90), C (Fortran 2003)

Imperative, procedural, object-oriented

static, strong, safe, nominative

1957

Haskell

Interpreter / compiler

Miranda, ML, λ-calculus

Functional, generic, lazy evaluation

static, strong, type inference

1990

Io

Interpreter

Smalltalk, Self, Lua, NewtonScript, Act1

Imperative, object-oriented

dynamic

2002

Java

Interpreter / JIT compiler

C++, Objective-C, C#

Imperative, object-oriented, multi-platform, generic

static, strong

1994

JavaScript

Interpreter,JIT compilation

C, Self, awk, Perl

Imperative, object-oriented, functional

dynamic

1995

Joy

Interpreter

RPN, Forth, PostScript

Functional, stack-oriented

typeless

2005

Korean: 리스프

Interpreter, compiler

λ-calculus

Functional

dynamic, strong

1958

Lua

Interpreter, JIT compiler

Korean: 파이썬, Korean: 아이콘, Korean: 리스프, Scheme

Procedural, imperative, reflective

dynamic, strong, safe

1993

Mathematica

Interpreter

Korean: 리스프, APL

Functional, procedural

dynamic, strong

1986

Objective-C

Compiler

C, Smalltalk

Imperative, object-oriented

static/dynamic hybrid, strong

1986

Objective Caml

Interpreter / compiler

ML, Korean: 리스프

Object-oriented, functional, imperative, generic

static, safe, structural, type inference

1996

Object Pascal (Delphi)

Compiler

Korean: 파스칼

Imperative, object-oriented, multi-platform

static, strong, safe (but unsafe allowed), nominative

1985

Oz

Compiler / interpreter

Korean: 프롤로그

Logic,functional, imperative, object-oriented, concurrent

1991

Korean: 파스칼

Compiler

ALGOL 60

Imperative

static, strong, safe

1970

Perl

Interpreter

C, shell, awk, sed, Korean: 리스프

Functional, object-oriented, procedural

dynamic

1987

PHP

Interpreter

Perl, C, C++, Java

Imperative, object-oriented

dynamic, weak

1995

Korean: 프롤로그

Compiler (WAM)

Logic-oriented

dynamic, strong

1972

Korean: 파이썬

Interpreter / JIT compiler

ABC, ALGOL 68, C, Perl, Modula-3

Imperative, object-oriented, functional, aspect-oriented

dynamic (duck typing), strong

1991

Korean: 루비

Interpreter

Smalltalk, Perl, Korean: 파이썬, Korean: 리스프

Imperative, object-oriented, functional, aspect-oriented

dynamic (duck typing), strong

1995

Korean: 스칼라

Interpreter / compiler

Java

Object-oriented, functional, generic

static, strong, partial type inference

2003

Scheme

Interpreter / compiler

Korean: 리스프, ALGOL 60

Functional

latent

1975

Bourne shell

Interpreter

ALGOL 68

Imperative

weak

1977

Smalltalk

JIT compiler

Sketchpad, Simula, Korean: 리스프

Object-oriented, functional, concurrent, event-driven, imperative, declarative

dynamic, strong, safe, duck typing

1971

Tcl

Interpreter / JIT compiler

C, Korean: 리스프, shell, awk, sed

Functional, object-oriented, imperative, procedural, event-driven

dynamic

1988

Visual Basic

Compiler

QuickBASIC

Component-oriented, event-driven

static/dynamic hybrid, weak/strong hybrid, safe, nominative

1991

Visual Basic .NET

JIT compiler

Visual Basic

Object-oriented, event-driven

static, strong

2001

Visual Prolog

Compiler

Korean: 프롤로그, C++, C#, Korean: 하스켈, SML

Logic, object-oriented, functional, event-driven, imperative, declarative

static, strong, safe, nominative/structural

1985

Favorite site

References


  1. Hyperpolyglot.org.zip ↩

author Zer0 sitemap