NAME: AYOOLA TOLULOPE
LEVEL: 300
DEPARTMENT: COMPUTER SCIENCE
MATRIC NUMBER: 20/SCI01/040
COURSE CODE: CSC 302 (SURVEY OF PROGRAMMING LANGUAGES)
QUESTION: Write a comprehensive survey of 150-200/300 programming languages, including: types
(structured/unstructured/modular), paradigm (object oriented, activity oriented, etc.), year, version,
and author, use case (scientific/business/AI), translator used (compiled/interpreted), time period
used..
1. Name: C
Type: Structured, procedural
Paradigm: Imperative
Year: 1972
Version: C17
Author: Dennis Ritchie
Use Case: System programming, operating systems, device drivers
Translator: Compiled
Time Period Used: 1972-present
2. Name: Python
Type: Modular
Paradigm: Multi-paradigm (object-oriented, functional, procedural)
Year: 1991
Version: 3.10
Author: Guido van Rossum
Use Case: Web development, scientific computing, machine learning, data analysis
Translator: Interpreted
Time Period Used: 1991-present
3. Name: Java
Type: Object-oriented
Paradigm: Imperative, declarative, functional, object-oriented
Year: 1995
Version: Java 16
Author: James Gosling
Use Case: Enterprise software, web applications, Android development
Translator: Compiled
Time Period Used: 1995-present
4. Name: C++
Type: Structured, procedural, object-oriented
Paradigm: Imperative, functional, object-oriented
Year: 1983
Version: C++20
Author: Bjarne Stroustrup
Use Case: Operating systems, game development, database software
Translator: Compiled
Time Period Used: 1983-present
5. Name: Ruby
Type: Object-oriented
Paradigm: Multi-paradigm (object-oriented, imperative, functional)
Year: 1995
Version: 3.0.1
Author: Yukihiro Matsumoto
Use Case: Web development, game development, automation scripting
Translator: Interpreted
Time Period Used: 1995-present
6. Name: JavaScript
Type: Unstructured
Paradigm: Imperative, functional, object-oriented
Year: 1995
Version: ECMAScript 2022
Author: Brendan Eich
Use Case: Web development, server-side development, game development
Translator: Interpreted
Time Period Used: 1995-present
7. Name: Go
Type: Structured
Paradigm: Imperative, concurrent, object-oriented
Year: 2009
Version: Go 1.16
Author: Robert Griesemer, Rob Pike, and Ken Thompson
Use Case: Cloud infrastructure, network programming, web development
Translator: Compiled
Time Period Used: 2009-present
8. Name: Swift
Type: Object-oriented
Paradigm: Multi-paradigm (object-oriented, imperative, functional)
Year: 2014
Version: Swift 5.4
Author: Chris Lattner
Use Case: iOS development, macOS development, server-side development
Translator: Compiled
Time Period Used: 2014-present
9. Name: Rust
Type: Structured
Paradigm: Imperative, functional, concurrent
Year: 2010
Version: Rust 1.52
Author: Graydon Hoare
Use Case: Systems programming, network programming, game development
Translator: Compiled
Time Period Used: 2010-present
10. Name: Kotlin
Type: Object-oriented
Paradigm: Multi-paradigm (object-oriented, functional)
Year: 2011
Version: Kotlin 1.5.0
Author: JetBrains
Use Case: Android development, server-side development, web development
Translator: Compiled
Time Period Used: 2011-present
11. Name: MATLAB
Type: Modular
Paradigm: Procedural, functional
Year: 1984
Version: R2021a
Author: Cleve Moler
Use Case: Scientific computing, data analysis, machine learning
Translator: Interpreted
Time Period Used: 1984-present
12. Name: PHP
Type: Structured
Paradigm: Imperative, Object-oriented
Year: 1995
Version: PHP 8.1
Author: Rasmus Lerdorf
Use Case: Web Development, Server-side Scripting
Translator: Interpreted
Time Period: 1990s - present
13. Name: R
Type: Modular
Paradigm: Functional, object-oriented
Year: 1993
Version: R 4.1.0
Author: Ross Ihaka and Robert Gentleman
Use Case: Statistical computing, data analysis, machine learning
Translator: Interpreted
Time Period Used: 1993-present
14. Name: TypeScript
Type: Structured
Paradigm: Object-oriented, functional
Year: 2012
Version: TypeScript 4.3
Author: Microsoft
Use Case: Web development, front-end development
Translator: Compiled
Time Period Used: 2012-present
15. Name: Lua
Type: Structured
Paradigm: Imperative, functional, procedural
Year: 1993
Version: Lua 5.4.3
Author: Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes
Use Case: Game development, embedded systems, scripting
Translator: Interpreted
Time Period Used: 1993-present
16. Name: Haskell
Type: Modular
Paradigm: Functional
Year: 1990
Version: Haskell 2020
Author: Simon Peyton Jones and others
Use Case: Mathematical programming, data analysis, artificial intelligence
Translator: Compiled
Time Period Used: 1990-present
17. Name: Scala
Type: Object-oriented
Paradigm: Object-oriented, functional
Year: 2003
Version: Scala 2.13.6
Author: Martin Odersky and others
Use Case: Web development, data analysis, artificial intelligence
Translator: Compiled
Time Period Used: 2003-present
18. Name: C#
Type: Object-oriented
Paradigm: Imperative, object-oriented
Year: 2000
Version: C# 9.0
Author: Microsoft
Use Case: Windows development, game development, server-side development
Translator: Compiled
Time Period Used: 2000-present
19. Name: Julia
Type: Structured
Paradigm: Functional, object-oriented
Year: 2012
Version: Julia 1.6.1
Author: Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman
Use Case: Scientific computing, numerical analysis, machine learning
Translator: Compiled
Time Period Used: 2012-present
20. Name: Dart
Type: Structured
Paradigm: Object-oriented, functional
Year: 2011
Version: Dart 2.12
Author: Google
Use Case: Web development, mobile app development
Translator: Compiled
Time Period Used: 2011-present
21. Name: SQL
Type: Structured
Paradigm: Declarative, domain-specific language
Year: 1974
Version: SQL:2016
Author: Donald D. Chamberlin and Raymond F. Boyce
Use Case: Database management, data analysis, data processing
Translator: Compiled or interpreted
Time Period Used: 1974-present
22. Name: SAS
Type: Structured
Paradigm: Object-oriented, procedural
Year: 1966
Version: SAS 9.4
Author: Jim Goodnight and John Sall
Use Case: Statistical computing, data analysis, business intelligence
Translator: Compiled or interpreted
Time Period Used: 1966-present
23. Name: LuaTeX
Type: Modular
Paradigm: Procedural, functional
Year: 2007
Version: LuaTeX 1.13.2
Author: Taco Hoekwater, Hans Hagen, and others
Use Case: Typesetting, document processing
Translator: Compiled
Time Period Used: 2007-present
24. Name: COBOL
Type: Structured
Paradigm: Imperative, procedural
Year: 1959
Version: COBOL 2014
Author: Grace Hopper and others
Use Case: Business applications, financial systems
Translator: Compiled
Time Period Used: 1959-present
25. Name: Prolog
Type: Structured
Paradigm: Logic programming
Year: 1972
Version: ISO/IEC 13211-1:1995
Author: Alain Colmerauer and Philippe Roussel
Use Case: Artificial intelligence, natural language processing
Translator: Interpreted
Time Period Used: 1972-present
26. Name: VHDL
Type: Modular
Paradigm: Hardware description language
Year: 1983
Version: VHDL-2008
Author: U.S. Department of Defense
Use Case: Digital circuit design, hardware description, FPGA programming
Translator: Compiled
Time Period Used: 1983-present
27. Name: F#
Type: Modular
Paradigm: Functional, object-oriented
Year: 2005
Version: F# 5.0
Author: Microsoft
Use Case: Scientific computing, data analysis, machine learning
Translator: Compiled
Time Period Used: 2005-present
28. Name: Smalltalk
Type: Object-oriented
Paradigm: Object-oriented
Year: 1972
Version: Smalltalk-80
Author: Alan Kay, Dan Ingalls, Adele Goldberg, and others
Use Case: Educational programming, graphical user interfaces
Translator: Interpreted
Time Period Used: 1972-present
29. Name: Ada
Type: Structured
Paradigm: Imperative, object-oriented
Year: 1980
Version: Ada 2012
Author: U.S. Department of Defense
Use Case: Safety-critical systems, real-time systems
Translator: Compiled
Time Period Used: 1980-present
30. Name: COq
Type: Modular
Paradigm: Functional, logical
Year: 1984
Version: Coq 8.13.2
Author: Thierry Coquand and Gérard Huet
Use Case: Formal verification, theorem proving
Translator: Compiled
Time Period Used: 1984-present
31. Name: Pascal
Type: Structured
Paradigm: Imperative, procedural
Year: 1970
Version: ISO/IEC 7185:1990
Author: Niklaus Wirth
Use Case: Educational programming, compiler development
Translator: Compiled
Time Period Used: 1970-present
32. Name: Objective-C
Type: Object-oriented
Paradigm: Object-oriented
Year: 1983
Version: Objective-C 2.0
Author: Brad Cox and Tom Love
Use Case: iOS app development, macOS app development
Translator: Compiled
Time Period Used: 1983-present
32. Name: Scratch
Type: Unstructured
Paradigm: Block-based programming, event-driven
Year: 2007
Version: Scratch 3.0
Author: MIT Media Lab
Use Case: Educational programming, introductory programming, game development
Translator: Interpreted
Time Period Used: 2007-present
33. Name: Erlang
Type: Structured
Paradigm: Concurrent, functional
Year: 1986
Version: Erlang/OTP 24
Author: Joe Armstrong, Robert Virding, and Mike Williams
Use Case: Telecommunications, distributed systems, fault-tolerant systems
Translator: Compiled
Time Period Used: 1986-present
34. Name: Groovy
Type: Structured
Paradigm: Object-oriented, functional
Year: 2003
Version: Groovy 3.0.9
Author: James Strachan
Use Case: Web development, scripting, build automation
Translator: Compiled or interpreted
Time Period Used: 2003-present
35. Name: COOL
Type: Object-oriented
Paradigm: Object-oriented
Year: 1996
Version: COOL 1.2
Author: Alex Aiken
Use Case: Educational programming, object-oriented programming
Translator: Interpreted
Time Period Used: 1996-present
36. Name: Tcl
Type: Unstructured
Paradigm: Scripting, procedural
Year: 1988
Version: Tcl 8.6
Author: John Ousterhout
Use Case: Scripting, GUI development, web development
Translator: Interpreted
Time Period Used: 1988-present
37. Name: Blockly
Type: Unstructured
Paradigm: Visual programming
Year: 2012
Version: Blockly 1.0
Author: Google
Use Case: Educational programming, game development, and robotics
Translator: Interpreted
Time Period Used: 2012-present
38. Name: Logo
Type: Unstructured
Paradigm: Educational programming, functional
Year: 1967
Version: Logo 7
Author: Wally Feurzeig, Seymour Papert, and Cynthia Solomon
Use Case: Educational programming, robotics, game development
Translator: Interpreted
Time Period Used: 1967-present
39. Name: FORTRAN
Type: Structured
Paradigm: Procedural, imperative
Year: 1957
Version: FORTRAN 2018
Author: IBM
Use Case: Scientific computing, engineering, numerical analysis
Translator: Compiled
Time Period Used: 1957-present
40. Name: D
Type: Structured
Paradigm: Imperative, object-oriented
Year: 2001
Version: D 2.0
Author: Walter Bright
Use Case: Systems programming, game development, web development
Translator: Compiled
Time Period Used: 2001-present
41. Name: ABAP
Type: Structured
Paradigm: Procedural
Year: 1983
Version: ABAP Objects
Author: SAP SE
Use Case: Business applications, SAP ERP systems
Translator: Compiled
Time Period Used: 1983-present
42. Name: RPG
Type: Structured
Paradigm: Procedural
Year: 1959
Version: RPG IV
Author: IBM
Use Case: Business applications, financial systems
Translator: Compiled
Time Period Used: 1959-present
43. Name: Elixir
Type: Structured
Paradigm: Functional, concurrent, distributed
Year: 2011
Version: Elixir 1.12
Author: José Valim
Use Case: Web development, distributed systems, fault-tolerant systems
Translator: Compiled
Time Period Used: 2011-present
44. Name: Hack
Type: Structured
Paradigm: Object-oriented, imperative
Year: 2014
Version: Hack 4.125.0
Author: Facebook
Use Case: Web development
Translator: Compiled
Time Period Used: 2014-present
45. Name: Apex
Type: Structured
Paradigm: Object-oriented
Year: 2007
Version: Apex 52.0
Author: Salesforce
Use Case: Salesforce app development
Translator: Compiled
Time Period Used: 2007-present
46. Name: Cobalt
Type: Structured
Paradigm: Object-oriented, imperative
Year: 2021
Version: Cobalt 0.16.1
Author: Cobalt Lang Team
Use Case: Web development, systems programming
Translator: Compiled
Time Period Used: 2021-present
47. Name: Pony
Type: Structured
Paradigm: Object-oriented, concurrent
Year: 2015
Version: Pony 0.40.0
Author: Sylvan Clebsch
Use Case: Concurrent programming, distributed systems, network programming
Translator: Compiled
Time Period Used: 2015-present
48. Name: Crystal
Type: Structured
Paradigm: Object-oriented, imperative
Year: 2014
Version: Crystal 1.2.1
Author: Ary Borenszweig
Use Case: Web development, systems programming
Translator: Compiled
Time Period Used: 2014-present
49. Name: Hacklang
Type: Structured
Paradigm: Object-oriented, functional, imperative
Year: 2014
Version: Hacklang 4.125.0
Author: Facebook
Use Case: Web development
Translator: Compiled
Time Period Used: 2014-present
50. Name: Groovy++
Type: Structured
Paradigm: Object-oriented
Year: 2004
Version: Groovy++ 0.5.0
Author: James Strachan
Use Case: Web development, scripting, build automation
Translator: Compiled
Time Period Used: 2004-2010
51. Name: Visual Basic .NET
Type: Structured
Paradigm: Object-oriented, imperative
Year: 2001
Version: Visual Basic .NET 16.10
Author: Microsoft
Use Case: Windows application development, web development
Translator: Compiled
Time Period Used: 2001-present
52. Name: Solidity
Type: Structured
Paradigm: Object-oriented, imperative
Year: 2014
Version: Solidity 0.8.4
Author: Ethereum Foundation
Use Case: Blockchain development, smart contracts
Translator: Compiled
Time Period Used: 2014-present
53. Name: Kotlin Multiplatform
Type: Structured
Paradigm: Object-oriented, functional
Year: 2020
Version: Kotlin Multiplatform 1.5.0
Author: JetBrains
Use Case: Cross-platform mobile app development, server-side programming
Translator: Compiled
Time Period Used: 2020-present
54. Name: Clojure
Type: Structured
Paradigm: Functional
Year: 2007
Version: Clojure 1.10.3
Author: Rich Hickey
Use Case: Web development, big data, concurrency
Translator: Compiled
Time Period Used: 2007-present
55. Name: LuaJIT
Type: Structured
Paradigm: Imperative, procedural
Year: 2005
Version: LuaJIT 2.1.0-beta3
Author: Mike Pall
Use Case: Game development, embedded systems, scripting
Translator: JIT-compiled
Time Period Used: 2005-present
56. Name: Zig
Type: Structured
Paradigm: Imperative
Year: 2015
Version: Zig 0.8.1
Author: Andrew Kelley
Use Case: System programming, game development
Translator: Compiled
Time Period Used: 2015-present
57. Name: OCaml
Type: Structured
Paradigm: Functional
Year: 1996
Version: OCaml 4.12.0
Author: Xavier Leroy, Damien Doligez, Didier Rémy
Use Case: Compiler development, numerical analysis, distributed systems
Translator: Compiled
Time Period Used: 1996-present
58. Name: Elixir
Type: Structured
Paradigm: Functional, concurrent
Year: 2011
Version: Elixir 1.12.1
Author: José Valim
Use Case: Web development, distributed systems, telecommunications
Translator: Compiled
Time Period Used: 2011-present
59. Name: Elm
Type: Structured
Paradigm: Functional, declarative
Year: 2012
Version: Elm 0.19.1
Author: Evan Czaplicki
Use Case: Web development
Translator: Compiled
Time Period Used: 2012-present
60. Name: Verilog
Type: Structured
Paradigm: Hardware description, concurrent
Year: 1984
Version: IEEE 1364-2005
Author: Gateway Design Automation
Use Case: Digital circuit design, electronic system design
Translator: Compiled
Time Period Used: 1984-present
61. Name: Nim
Type: Structured
Paradigm: Imperative, functional, object-oriented
Year: 2008
Version: Nim 1.4.8
Author: Andreas Rumpf
Use Case: System programming, web development, scientific computing
Translator: Compiled
Time Period Used: 2008-present
62. Name: Reason
Type: Structured
Paradigm: Functional
Year: 2017
Version: Reason 3.6.0
Author: Jordan Walke
Use Case: Web development
Translator: Compiled
Time Period Used: 2017-present
63. Name: CoffeeScript
Type: Structured
Paradigm: Object-oriented
Year: 2009
Version: CoffeeScript 2.6.1
Author: Jeremy Ashkenas
Use Case: Web development
Translator: Compiled
Time Period Used: 2009-present
64. Name: Haxe
Type: Structured
Paradigm: Multi-paradigm
Year: 2005
Version: Haxe 4.2.3
Author: Nicolas Cannasse
Use Case: Game development, web development
Translator: Compiled
Time Period Used: 2005-present
65. Name: PowerShell
Type: Structured
Paradigm: Object-oriented, imperative
Year: 2006
Version: PowerShell 7.1.3
Author: Microsoft Corporation
Use Case: System administration, automation
Translator: Interpreted
Time Period Used: 2006-present
66. Name: Assembly
Type: Unstructured
Paradigm: Low-level programming
Year: 1949
Version: Multiple
Author: Multiple
Use Case: System programming, device driver development
Translator: Assembler
Time Period Used: 1949-present
67. Name: Bash
Type: Structured
Paradigm: Imperative, procedural
Year: 1989
Version: Bash 5.1
Author: Brian Fox
Use Case: Scripting, automation, system administration
Translator: Interpreted
Time Period Used: 1989-present
68. Name: LuaTeX
Type: Structured
Paradigm: Procedural, object-oriented
Year: 2004
Version: LuaTeX 1.13.3
Author: Taco Hoekwater, Hans Hagen, Luigi Scarso
Use Case: Typesetting, document preparation
Translator: Compiled
Time Period Used: 2004-present
69. Name: Lisp
Type: Structured
Paradigm: Functional, Object-oriented
Year: 1958
Version: Common Lisp
Author: John McCarthy
Use Case: Artificial Intelligence, Natural Language Processing
Translator: Interpreted
Time Period: 1950s - present
70. Name: Scheme
Type: Structured
Paradigm: Functional
Year: 1975
Version: R7RS
Author: Guy L. Steele, Gerald Jay Sussman
Use Case: Education, Artificial Intelligence
71. Name: Perl
Type: Modular
Paradigm: Imperative, Object-Oriented
Year: 1987
Version: Perl 5.34
Author: Larry Wall
Use case: Web Development, System Administration, Network Programming
Translator: Interpreted
Time period: 1987 to present
72. Name: Awk
Type: Unstructured
Paradigm: Imperative, procedural, text processing
Year: 1977
Version: Awk 4.2
Author: Alfred Aho, Peter Weinberger, Brian Kernighan
Use Case: Text processing, data extraction; Translator: Interpreted
Time Period Used: 1977-Present
73. Name: Shell
Type: Unstructured
Paradigm: Scripting, procedural
Year: 1971
Version: GNU Bash 5.1
Author: Ken Thompson
Use Case: System administration, command-line interfaces, automation
Translator: Interpreted
Time Period Used: 1971-Present
74. Name: Lisp
Type: Unstructured
Paradigm: Functional, procedural, meta programming
Year: 1958
Version: Common Lisp ANSI X3J13
Author: John McCarthy
Use Case: Artificial intelligence, computer algebra systems, symbolic computing
Translator: Interpreted/Compiled
Time Period Used: 1958-Present
75. Name: Forth
Type: Unstructured
Paradigm: Stack-based, procedural, imperative
Year: 1968
Version: Forth-83
Author: Charles H. Moore
Use Case: Embedded systems, robotics, and control systems
Translator: Compiled/Interpreted
Time Period Used: 1968-Present
76. Name: RPGLE
Type: unstructured
Paradigm: Procedural, imperative
Year: 1994
Version: IBM i V7R4
Author: IBM
Use Case: Business, finance, accounting
Translator: Compiled
Time Period Used: 1994-Present
77. Name: RPG III
Type: Unstructured
Paradigm: Procedural, imperative
Year: 1978
Version: IBM i V7R4
Author: IBM
Use Case: Business, finance, accounting
Translator: Compiled
Time Period Used: 1978-1994
78. Name: Bourne Shell
Type: Unstructured
Paradigm: Procedural, scripting
Year: 1979
Version: GNU Bash 5.1
Author: Stephen Bourne
Use Case: Command-line interface, system administration, shell scripting
Translator: Interpreted
Time Period Used: 1979-Present
79. Name: DIBOL
Type: Unstructured
Paradigm: Procedural, imperative
Year: 1969
Version: DIBOL-8
Author: Digital Equipment Corporation
Use Case: Business, finance, accounting
Translator: Compiled
Time Period Used: 1969-1990s
80. Name: FOCAL
Type: Unstructured
Paradigm: Procedural, imperative
Year: 1968
Version: FOCAL-69
Author: DECUS (Digital Equipment Corporation User's Society)
Use Case: Education, scientific computing, engineering
Translator: Interpreted
Time Period Used: 1968-1980s
81. Name: Icon
Type: Unstructured
Paradigm: Imperative, procedural
Year: 1977
Version: Icon 9.5
Author: Ralph Griswold, Clinton Jeffery
Use Case: Text processing, artificial intelligence, computer science education
Translator: Interpreted;
Time Period Used: 1977-Present
82. Name: HyperTalk
Type: Unstructured
Paradigm: Procedural, event-driven
Year: 1987
Version: HyperCard 2.4.1
Author: Bill Atkinson
Use Case: User interfaces, multimedia, education
Translator: Interpreted
Time Period Used: 1987-2004
83. Name: Clipper
Type: Unstructured
Paradigm: Procedural, imperative
Year: 1985
Version: CA-Clipper 5.3
Author: Nantucket Corporation
Use Case: Business, finance, accounting
Translator: Compiled
Time Period Used: 1985-1990s
84. Name: Ladder Logic
Type: Unstructured
Paradigm: Visual programming, functional
Year: 1970s
Version: N/A
Author: Dick Morley
Use Case: Industrial control systems, automation
Translator: Compiled
Time Period Used: 1970s-Present
85. Name: FoxPro
Type: Unstructured
Paradigm: Procedural, object-oriented
Year: 1984
Version: Visual FoxPro 9.0
Author: Fox Software
Use Case: Database management, business applications
Translator: Compiled
Time Period Used: 1984-2007 (discontinued)
86. Name: Algol
Type: Unstructured
Paradigm: Procedural, imperative
Year: 1958
Version: Algol 68
Author: International Federation for Information Processing
Use Case: Scientific computing, numerical analysis, algorithm development
Translator: Compiled
Time Period Used: 1958-1980s
88. Name: Delphi
Type: Unstructured
Paradigm: Object-oriented, imperative, procedural
Year: 1995
Version: Delphi 11 Alexandria
Author: Borland
Use Case: Business, software development, database management
Translator: Compiled
Time Period Used: 1995-Present
89. Name: HyperTalk
Type: Unstructured
Paradigm: Procedural, event-driven
Year: 1987
Version: HyperCard 2.4.1
Author: Bill Atkinson
Use Case: User interfaces, multimedia, education
Translator: Interpreted
Time Period Used: 1987-2004
90. Name: Shell
Type: Unstructured
Paradigm: Scripting, procedural
Year: 1971
Version: GNU Bash 5.1
Author: Ken Thompson
Use Case: System administration, command-line interfaces, automation
Translator: Interpreted
Time Period Used: 1971-Present
91. Name: Shell scripting (e.g., Bash)
Type: Unstructured
Paradigm: Procedural, scripting
Year: 1979
Version: Various (e.g., Bash 5.1)
Author: Brian Fox
Use Case: Automating tasks, system administration
Translator: Interpreted
Time Period: Widely used
92. Name: Scheme
Type: Structured
Paradigm: Functional
Year: 1975
Version: Various implementations (e.g., Racket, GNU Guile)
Author: Gerald Jay Sussman and Guy L. Steele Jr.
Use Case: Education, research, embedded systems
Translator: Interpreted
Time Period: Widely used
93. Name: Solidity
Type: Structured
Paradigm: Object-oriented, contract-based
Year: 2014
Version: Solidity 0.8
Author: Ethereum Foundation
Use Case: Smart contract development on blockchain platforms (e.g., Ethereum)
Translator: Compiled (to Ethereum Virtual Machine bytecode)
Time Period: Modern (for blockchain development)
94. Name: Elm
Type: Structured
Paradigm: Functional
Year: 2012
Version: Elm 0.19
Author: Evan Czaplicki
Use Case: Web frontend development, reactive programming
Translator: Compiled (to JavaScript)
Time Period: Modern
95. Name: Wolfram Language
- Type: Modular
- Paradigm: Functional
- Year: 1988
- Version: Wolfram Language 12.3
- Author: Stephen Wolfram
- Use Cases: Scientific Computing, Artificial Intelligence
- Translator Used: Interpreted
- Time Period Used: 1990s to present
96. XQuery
- Type: Query Language
- Paradigm: Functional, Declarative
- Year: 2003
- Version: XQuery 3.1
- Author: W3C
- Use Cases: Data Integration, Web Services
- Translator Used: Interpreted
- Time Period Used: 2000s to present
97. XML
- Type: Markup Language
- Paradigm: Declarative
- Year: 1998
- Version: XML 1.0
- Author: W3C
- Use Cases: Data Exchange, Document Management
- Translator Used: -
- Time Period Used: 1990s to present
98. Yacc
- Type: Parser Generator
- Paradigm: -
- Year: 1970
- Version: Berkeley Yacc
- Author: Stephen C. Johnson
- Use Cases: Compiler Development, Language Translation
- Translator Used: Compiled
- Time Period Used: 1970s to present
99. YAML
- Type: Markup Language
- Paradigm: Declarative
- Year: 2001
- Version: YAML 1.2
- Author: Ingy döt Net and Oren Ben-Kiki
- Use Cases: Configuration Files,
100. Zsh
- Type: Scripting Language
- Paradigm: Imperative, Object-oriented
- Year: 1990
- Version: Zsh 5.8
- Author: Paul Falstad
- Use Cases: Shell Scripting, Command-line Interface
- Translator Used: Interpreted
- Time Period Used: 1990s to present
101. Befunge
- Type: Esoteric programming language
- Paradigm: Stack-based
- Year: 1993
- Version: Befunge-93
- Author: Chris Pressey
- Use Cases: Recreational programming, code golf, brain teasers
- Translator Used: Interpreted
- Time Period Used: 1990s to present
102. MUMPS
- Type: Database programming language
- Paradigm: Multi-paradigm
- Year: 1966
- Version: MUMPS 2017
- Author: Massachusetts General Hospital
- Use Cases: Healthcare applications, finance, logistics
- Translator Used: Compiled or Interpreted
- Time Period Used: 1960s to present
103. Eiffel
- Type: Object-oriented
- Paradigm: Object-oriented
- Year: 1986
- Version: EiffelStudio 2021
- Author: Bertrand Meyer
- Use Cases: Software Development, Education
- Translator Used: Compiled
- Time Period Used: 1980s to present
104. Fjölnir
- Type: Functional programming language
- Paradigm: Functional
- Year: 2007
- Version: Fjölnir 1.0
- Author: Mariano Guerra
- Use Cases: Web development, server-side scripting
- Translator Used: Interpreted
- Time Period Used: 2000s to present
105. Seed7
- Type: General-purpose programming language
- Paradigm: Multi-paradigm
- Year: 2005
- Version: Seed7 2021-03-14
- Author: Thomas Mertes
- Use Cases: Numerical analysis, data processing, games
- Translator Used: Compiled or Interpreted
- Time Period Used: 2000s to present
106. XSLT
- Type: Unstructured
- Paradigm: Declarative
- Year: 1999
- Version: XSLT 3.0
- Author: World Wide Web Consortium (W3C)
- Use Cases: Transforming XML documents
- Translator Used: Interpreter
- Time Period Used: 1990s to present
107. YARA
- Type: Structured
- Paradigm: Procedural
- Year: 2007
- Version: YARA 4.1.0
- Author: Victor M. Alvarez
- Use Cases: Malware Detection, Threat Intelligence
- Translator Used: Compiled
- Time Period Used: 2000s to present
108. µC/OS-II
- Type: Structured
- Paradigm: Real-time Operating System Kernel
- Year: 1991
- Version: µC/OS-II 3.00
- Author: Jean J. Labrosse
- Use Cases: Embedded Systems, Real-time Systems
- Translator Used: Compiled
- Time Period Used: 1990s to present
109. µVision IDE
- Type: Structured
- Paradigm: Integrated Development Environment
- Year: 1981
- Version: µVision IDE 5.3
- Author: Keil
- Use Cases: Embedded Systems Development
- Translator Used: N/A (used in conjunction with other languages)
110. µVision C51
- Type: Structured
- Paradigm: Procedural
- Year: 1981
- Version: µVision C51 9.56
- Author: Keil
- Use Cases: Embedded Systems Development
- Translator Used: Compiled
- Time Period Used: 1980s to present
111. µVision ARM
Type: Structured
Paradigm: Procedural
Year: 2000
Version: µVision ARM 5.29
Author: Keil
Use Cases: Embedded Systems Development
Translator Used: Compiled
Time Period Used: 2000s to present
112. µClibc
Type: Structured
Paradigm: Library
Year: 2000
Version: µClibc 1.0.30
Author: Erik Andersen
Use Cases: Embedded Systems, Real-time Systems
Translator Used: Compiled
Time Period Used: 2000s to present
113. µGFX
Type: Structured
Paradigm: Library
Year: 2012
Version: µGFX 3.1.1
Author: Joel Bodenmann
Use Cases: Embedded Graphics, User Interfaces
Translator Used: Compiled
Time Period Used: 2010s to present
114. µOS++
Type: Structured
Paradigm: Object-oriented
Year: 2004
Version: µOS++ IIIe 6.2.4
Author: Liviu Ionescu
Use Cases: Embedded Systems, Real-time Systems
Translator Used: Compiled
Time Period Used: 2000s to present
115. µTasker
Type: Structured
Paradigm: Cooperative Multitasking
Year: 2001
Version: µTasker V1.4
Author: M.J. Nicholas
Use Cases: Embedded Systems, Real-time Systems
Translator Used: Compiled
Time Period Used: 2000s to present
116. µC/Probe
Type: Structured
Paradigm: Debugging Tool
Year: 2013
Version: µC/Probe V4.0
- Author: Jean J. Labrosse
- Use Cases: Embedded Systems Development
- Translator Used: N/A (used in conjunction with other languages)
- Time Period Used: 2010s to present
117. µC/TCP-IP
- Type: Structured
- Paradigm: TCP/IP Stack
- Year: 2001
- Version: µC/TCP-IP V3.5
- Author: Jean J. Labrosse
- Use Cases: Embedded Systems, Networking
- Translator Used: Compiled
- Time Period Used: 2000s to present
118. µGUI
- Type: Structured
- Paradigm: Library
- Year: 2012
- Version: µGUI V3.0
- Author: Achim Döbler
- Use Cases: Embedded Graphics, User Interfaces
- Translator Used: Compiled
- Time Period Used: 2010s to present
119. µTask
- Type: Structured
- Paradigm: Cooperative Multitasking
- Year: 2010
- Version: µTask 1.4
- Author: Johan Fjellstedt
- Use Cases: Embedded Systems, Real-time Systems
- Translator Used: Compiled
- Time Period Used: 2010s to present
120. XQuery
- Paradigm: Functional
- Year: 2007
- Version: XQuery 1.0
- Author: W3C
- Use Cases: Database Querying, XML Processing
- Translator Used: Interpreted
- Time Period Used: 2000s to present
121. Name: XPath
- Type: Structured
- Paradigm: Functional
- Year: 1999
- Version: XPath 3.1
- Author: W3C
- Use Cases: XML Processing, Web Development
- Translator Used: Interpreted
- Time Period Used: 1990s to present
122. Ruby on Rails:
Type: Structured, Object-Oriented
Paradigm: Object-Oriented, MVC (Model-View-Controller)
Year: 2004
Version: Ruby on Rails 6.1
Author: David Heinemeier Hansson
Use Case: Web application development, Rapid prototyping
Translator: Interpreted
Time Period Used: Since 2004, widely used for web development with Ruby
123. COQ:
Type: Structured
Paradigm: Functional, Interactive theorem proving
Year: 1984
Version: Coq 8.13
Author: Gérard Huet, Thierry Coquand
Use Case: Formal verification, Mathematical proofs
Translator: Compiled
Time Period Used: Since 1984, used in academia and formal methods
124. VHDL-RTL (VHSIC Hardware Description Language-Register Transfer Level)
Type: Structured
Paradigm: Hardware description, Register Transfer Level modeling
Year: 1987
Version: IEEE Standard 1076-1993
Authors: Accellera
Use Case: Digital circuit design, RTL simulation
Translator: Compiled (to hardware)
Time Period: Widely used since the 1980s for designing and simulating digital systems at the
register-transfer level
125. UnrealScript
Type: Structured
Paradigm: Object-oriented
Year: 1998
Version: Unreal Engine 3
Authors: Epic Games
Use Case: Game development, Game scripting
Translator: Compiled (to Unreal Virtual Machine bytecode)
Time Period: Widely used in the 2000s for game development using the Unreal Engine
126. Name: COMAL (Common Algorithmic Language)
Type: Structured
Paradigm: Functional
Use case: Supports functional structuring
Author: Berge Christensen
Year: 1973
Time period used: 1973 to present
127. OCaml:
Type: Structured
Paradigm: Functional, Imperative
Year: 1996
Version: OCaml 4.12
Author: Xavier Leroy, others
Use Case: Systems programming, Compiler development, Functional programming
Translator: Compiled
Time Period Used: Since 1996, known for its expressive type system and static type checking.
128. Bash:
Type: Structured, Scripting
Paradigm: Imperative, Procedural
Year: 1989
Version: Bash 5.1
Author: Brian Fox
Use Case: System administration, Scripting
Translator: Interpreted
Time Period Used: Since 1989, commonly used in Unix-like systems for automating tasks and
shell scripting.
129. KornShell (ksh):
Type: Structured, Scripting
Paradigm: Procedural
Year: 1983
Version: ksh93u+
Author: David Korn
Use Case: Shell scripting, System administration
Translator: Interpreted
Time Period Used: Since 1983, KornShell is a powerful UNIX shell language for scripting and
system administration tasks.
130. Racket:
Type: Structured
Paradigm: Multi-paradigm
Year: 1994
Version: Racket 8.0
Author: Matthew Flatt, PLT Inc.
Use Case: Education, Language design
Translator: Compiled
Time Period Used: Since 1994, Racket (formerly known as PLT Scheme) is used for teaching
programming concepts and language design experiments.
131. VHDL-AMS (VHSIC Hardware Description Language-Analog and Mixed-Signal)
Type: Structured
Paradigm: Hardware description, Concurrent, Analog modeling
Year: 1994
Version: IEEE Standard 1076.1-2007
Authors: Open Source VHDL Verification Methodology (OSVVM) Working Group
Use Case: Analog and mixed-signal circuit design and simulation
Translator: Compiled (to hardware)
Time Period: Widely used since the 1990s for designing and simulating mixed-signal systems
132. PDDL (Planning Domain Definition Language)
Type: Structured
Paradigm: Logic-based, Declarative
Year: 1998
Version: PDDL 3.1
Authors: AI Planning Systems Community
Use Case: Artificial intelligence, Automated planning
Translator: Interpreted
Time Period: Widely used since the late 1990s for representing planning problems in AI
research
133. Chapel:
Type: Structured
Paradigm: Multi-paradigm
Year: 2009
Version: Chapel 1.24
Author: Cray Inc., Brad Chamberlain
Use Case: Parallel computing, High-performance computing
Translator: Compiled
Time Period Used: Since 2009, Chapel is designed for large-scale parallel programming and
targets high-performance computing architectures.
134. Ballerina:
Type: Structured
Paradigm: Concurrent, Object-Oriented
Year: 2017
Version: Ballerina Swan Lake Beta2
Author: Ballerina language specification committee
Use Case: Integration, Microservices
Translator: Compiled (to Java bytecode)
Time Period Used: Since 2017, Ballerina is designed for building resilient, scalable, and secure
integration solutions.
135. CUDA:
Type: Structured
Paradigm: Imperative
Year: 2006
Version: CUDA 11.6
Author: NVIDIA Corporation
Use Case: General-purpose GPU programming, parallel computing
Translator: Compiled (to GPU machine code)
Time Period Used: Since 2006, CUDA enables developers to harness the power of NVIDIA GPUs
for parallel computation.
136. Pro*C:
Type: Structured
Paradigm: Procedural
Year: 1986
Version: Oracle Pro*C/C++ 21c
Author: Oracle Corporation
Use Case: Database programming, Integration with C/C++
Translator: Compiled (to C/C++ code)
Time Period Used: Since 1986, Pro*C allows embedding SQL statements in C/C++ code for
efficient database access and manipulation
137. Verge3D:
Type: Structured
Paradigm: Object-Oriented
Year: 2017
Version: Verge3D 3.0
Author: Vladimir Kuzmin
Use Case: Web-based 3D graphics, Virtual reality (VR)
Translator: Compiled (to JavaScript)
Time Period Used: Since 2017, Verge3D is used for creating interactive 3D web applications and
VR experiences.
138. LabVIEW
Type: Structured
Paradigm: Dataflow, Visual programming
Year: 1986
Version: LabVIEW 2021
Authors: National Instruments
Use Case: System design, Data acquisition, Instrument control
Translator: Compiled (to machine code)
Time Period: Widely used since the 1980s, particularly in measurement and automation
applications
139. ReasonML:
Type: Structured
Paradigm: Functional, Object-Oriented
Year: 2016
Version: ReasonML 3.7.0
Author: Jordan Walke, Facebook
Use Case: Web development
Translator: Compiled (to JavaScript)
Time Period Used: Since 2016, ReasonML is a statically-typed language that provides a syntax
and tool chain for functional and object-oriented programming, used for web development and
React.js applications.
140. Mathematica
Type: Structured
Paradigm: Multi-paradigm (Symbolic, Functional, Rule-based)
Year: 1988
Version: Mathematica 12.3
Authors: Stephen Wolfram, Wolfram Research
Use Case: Symbolic computation, Data analysis, Visualization
Translator: Interpreted
Time Period: Widely used since the 1990s
141. OCaml
Type: Structured
Paradigm: Functional, Imperative, Object-Oriented
Year: 1996
Version: OCaml 4.12
Authors: Xavier Leroy, Didier Rémy, Jérôme Vouillon, et al.
Use Case: Systems programming, Compiler development, Formal verification
Translator: Compiled
Time Period: Widely used since the 1990s
142. WebAssembly (Wasm)
Type: Structured
Paradigm: Low-level, Imperative
Year: 2017
Version: WebAssembly 1.0
Authors: World Wide Web Consortium (W3C)
Use Case: Web development, High-performance browser applications
Translator: Compiled (to bytecode)
Time Period: Widely used since the 2010s
143. Shell Scripting (Bourne shell, Bash, etc.)
Type: Scripting
Paradigm: Imperative, Procedural
Year: 1979 (Bourne shell)
Version: -
Authors: Stephen Bourne (Bourne shell), Brian Fox (Bash)
Use Case: Scripting, Automation, System administration
Translator: Interpreted
Time Period: Widely used since the 1980s in Unix/Linux systems
144. AutoHotkey
Type: Scripting
Paradigm: Imperative
Year: 2003
Version: AutoHotkey_L 1.1
Authors: Chris Mallett
Use Case: Automation, Hotkey scripting, desktop automation
Translator: Interpreted
Time Period: Widely used since the 2000s for automating tasks and creating custom hotkeys on
Windows system
145. Delphi
Type: Structured
Paradigm: Object-oriented
Year: 1995
Version: Delphi 10.4
Author: Borland, Embarcadero Technologies
Use Case: Windows desktop applications, database development
Translator: Compiled
Time Period Used: Since its introduction in 1995
146. Eiffel
Type: Structured
Paradigm: Object-oriented
Year: 1986
Version: EiffelStudio 21.11
Author: Bertrand Meyer
Use Case: Software engineering, safety-critical systems
Translator: Compiled (to machine code or Java bytecode)
Time Period Used: Since its introduction in 1986
147. JSON
Type: Unstructured
Paradigm: Data interchange format
Year: 2001
Version: JSON (JavaScript Object Notation)
Author: Douglas Crockford
Use Case: Data serialization, configuration files, web APIs
Translator: Not applicable (interpreted by JSON parsers)
Time Period Used: Since its introduction in 2001
148. JSON
Type: Unstructured
Paradigm: Data interchange format
Year: 2001
Version: JSON (JavaScript Object Notation)
Author: Douglas Crockford
Use Case: Data serialization, configuration files, web APIs
Translator: Not applicable (interpreted by JSON parsers)
Time Period Used: Since its introduction in 2001
149. YAML
Type: Unstructured
Paradigm: Data serialization format
Year: 2001
Version: YAML 1.2
Author: Clark Evans, Ingy döt Net, Oren Ben-Kiki
Use Case: Configuration files, data exchange
Translator: Not applicable (interpreted by YAML parsers)
Time Period Used: Since its introduction in 2001
150. CobolScript
Type: Structured
Paradigm: Imperative, procedural, object-oriented
Year: 2007
Version: CobolScript 2.0
Author: Anthony Richardson
Use Case: Web development, server-side scripting
Translator: Compiled (to JavaScript)
Time Period Used: Since its introduction in 2007