List of C-family programming languages

Due to the success of the C programming language and some of its derivatives, C-family programming languages span a large variety of programming paradigms, conceptual models, and run-time environments. These languages are described by notable programming sources as being C-like, being dialects of C, having C-like syntax, or otherwise being similar to C.

Such languages are likely to share some syntax and basic language constructs with C, such as semicolon-terminated statements, curly-brace-delimited code blocks, parentheses-delimited parameters, and infix-notated arithmetical and logical expressions. The use of curly brackets ({}) to denote blocks of code has led to the name curly-bracket languages being sometimes used.[1]

LanguageYear startedCreated by (at)Brief description, relationship to CReferences
Agora1993 ?A reflective, prototype-based, object-oriented programming language that is based exclusively on message passing and not delegation.
Alef1995Phil Winterbottom (Bell Labs)Created for systems programming on the Plan 9 from Bell Labs operating system; it was published in 1995 but eventually abandoned. It provided substantial language support for concurrent programming.[2]
Amiga E1993Wouter van OortmerssenA combination of many features from a number of languages, but follows the original C programming language most closely in terms of basic concepts.
AMPL1985Robert Fourer, David Gay and Brian Kernighan (Bell Labs)An algebraic modeling language with elements of a scripting language.
AWK1977Alfred Aho, Peter Weinberger & Brian Kernighan (Bell Labs)Designed for text processing and typically used as a data extraction and reporting tool.[3]
Axum2009MicrosoftA domain specific concurrent programming language, based on the Actor model.
BCPL1966Martin RichardsA procedural, imperative, and structured computer programming language. Precursor to C.[4]
C1969-1973Dennis Ritchie (Bell Labs)Was an enhancement of Ken Thompson's B language.[1]
C shell/tcsh1978Bill Joy (UC Berkeley)Scripting language and standard Unix shell.
C*1987Thinking MachinesObject-oriented, data-parallel superset of ANSI C.
C++1979Bjarne Stroustrup (Bell Labs)Named as "C with Classes" and renamed C++ in 1983; it began as a reimplementation of static object orientation in the tradition of Simula 67, and through standardization and wide use has grown to encompass generic programming as well as its original object-oriented roots.[5][1]
C--1997Simon Peyton Jones, Norman RamseyGenerated mainly by compilers for very high-level languages.
Cg2002NvidiaBased on the C programming language and although they share the same syntax, some features of C were modified and new data types were added to make Cg more suitable for programming graphics processing units. This language is only suitable for GPU programming and is not a general programming language.
Ch2001Harry ChengA C/C++ scripting language with extensions for shell programming and numerical computing.[6][7]
Chapel 13372009Cray Inc.Aims to improve the programmability of parallel computers in general and the Cray Cascade system in particular.
Charm1996 ?An object oriented computer programming language with similarities to the RTL/2, Pascal and C languages in addition to containing some unique features of its own.
Cilk1994MIT Laboratory for Computer ScienceGeneral-purpose programming language designed for multithreaded parallel computing.
CINT1997-1999?Masaharu GotoAn interpreted version of C/C++, much in the way BeanShell is an interpreted version of Java.
Claire1994Yves CaseauA high-level functional and object-oriented programming language with rule processing abilities.
Cyclone2001Greg Morrisett (AT&T Labs)Intended to be a safe dialect of the C language. It is designed to avoid buffer overflows and other vulnerabilities that are endemic in C programs, without losing the power and convenience of C as a tool for system programming.
C# 2000 Anders Hejlsberg Developed by Microsoft in the early 2000s as a modern, object-oriented programming language for the .NET Framework. [1]
D2001Walter Bright (Digital Mars)Based on C++, but with an incompatible syntax having traits from other C-like languages like Java and C#.
Dart2013Lars Bak and Kasper Lund (Google)A class-based, single inheritance, object-oriented language with C-style syntax.
E 1997 Mark S. Miller, Dan Bornstein (Electric Communities) Designed with secure computing in mind, accomplished chiefly by strict adherence to the object-oriented computing model.
eC2004Jérôme Jacovella-St-Louis (Ecere)A super-set of C adding object-oriented features (inspired by C++), properties, dynamic modules and reflection developed as part of the Ecere SDK project, an open-source cross-platform SDK.
Fantom2005Brian Frank and Andy FrankAn object-oriented, functional, actor concurrent with a null-able aware type system emphasizing pragmatism in building enterprise systems running on top of the JVM or the CLR or JavaScript.
Go2007Rob Pike, Ken Thompson, and Robert Griesemer (Google)Released to public in 2009, it is a concurrent language with fast compilations, Java-like syntax, but no object-oriented features and strong typing.
Hack2014Julien Verlaguet, Alok Menghrajani, Drew Paroski (Facebook)A programming language for the HipHop Virtual Machine (HHVM).
Handel-C1996Oxford University Computing LaboratoryA high-level programming language which targets low-level hardware, most commonly used in the programming of FPGAs. It is a rich subset of C.
HolyC 2005 Terry A. Davis A dialect of C for Terry's own operating system TempleOS. [8][9]
Java1991James Gosling (Sun Microsystems)Created as Oak, and released to the public in 1995. It is an OODL based inspired heavily by Objective-C, though with a syntax based somewhat on C++. Compiles to its own bytecode, and is strongly typed.[1]
JavaScript1995Brendan Eich (Netscape)Created as Mocha and LiveScript, announced in 1995, shipped the next year as JavaScript. Primarily a scripting language used in Web page development as well as numerous application environments such as Adobe Flash and QtScript. Though initially based on Scheme and Self, it is primarily a prototype-based object-oriented language with a syntax based on Java.[10] Standardized as ECMAScript.[11][12]
Limbo1995Limbo succeeded Alef and is used in Inferno as Alef was used in Plan9.
LSL2003 ?Created for the Second Life virtual world by Linden Lab.
Lite-C2007Atari IncA programming language for multimedia applications and personal computer games, using a syntax subset of the C language with some elements of the C++ language.
LPC1995Lars PensjöDeveloped originally to facilitate MUD building on LPMuds. Though designed for game development, its flexibility has led to it being used for a variety of purposes.
Neko2005Nicolas Cannasse (Motion-Twin)A high-level dynamically typed programming language.
Nemerle2003Kamil Skalski, Michał Moskal, Prof. Leszek Pacholski, Paweł Olszta at Wrocław UniversityA general-purpose high-level statically typed programming language designed for platforms using the Common Language Infrastructure (.NET/Mono).
nesC2003David Gay, Philip Levis, Robert von Behren, Matt Welsh, Eric Brewer, & David CullerPronounced "NES-see", it is an extension to the C programming language designed to embody the structuring concepts and execution model of TinyOS. TinyOS is an event-driven operating system designed for sensor network nodes that have very limited resources.[13][14]
Newsqueak1988Rob PikeA concurrent programming language for writing application software with interactive graphical user interfaces. Newsqueak's syntax and semantics are influenced by the C language, but its approach to concurrency was inspired by CSP.[15][16]
Nim2008Andreas RumpfAn imperative, multi-paradigm, compiled programming language.
Noop2009GoogleAttempts to blend the best features of "old" and "new" languages, while syntactically encouraging good programming practice.
Not eXactly C (NXC)2006John HansenA high-level programming language for the Lego Mindstorms NXT. NXC, which is short for Not eXactly C, is based on Next Byte Codes, an assembly language. NXC has a syntax like C. It is part of the BricX IDE that integrates editor, tools for interfacing with the brick, and the compiler, but supports more languages.[17]
Not Quite C (NQC)1998 (approx.)David BaumAn embedded systems programming language, application programming interface (API), and native bytecode compiler toolkit for the Lego Mindstorms RCX platform, Cybermaster and LEGO Spybotics systems. It is intended as a drop-in replacement for the LabVIEW-based ROBOLAB IDE. It is primarily based on the C language but has specific limitations, such as the maximum number of subroutines and variables allowed. Later replaced with NXC, an enhanced version created for the Mindstorms NXT platform.[18]
Oak1991James Gosling (Sun Microsystems)A programming language created initially for Sun Microsystems set-top box project. The language later evolved to become Java.
Objective-C1986Brad Cox and Tom LoveAn object-oriented dynamic language based heavily on Smalltalk. A loosely defined de facto standard library by the original developers has now largely been displaced by variations on the OpenStep FoundationKit.[5]
OpenCL C2009Apple, Khronos GroupOpenCL specifies a modified subset of the C programming language for writing programs to run on various compute devices (e.g. GPUs, DSPs).
Perl1988Larry WallScripting language used extensively for system administration, text processing, and web server tasks.[1]
PHP1995Rasmus LerdorfWidely used as a server-side scripting language. C-like syntax.[19]
Pike1994Fredrik HübinetteAn interpreted, general-purpose, high-level, cross-platform, dynamic programming language, with a syntax similar to that of C.
PROMAL1985Systems Management AssociatesA C-like programming language for MS-DOS, Commodore 64, and Apple II.
R1993Ross Ihaka and Robert GentlemanA programming language and software environment for statistical computing and graphics.[20]
Ratfor1974Brian Kernighan (Bell Labs)A hybrid of C and Fortran, implemented as a preprocessor for environments without easy access to C compilers.
Ring2016Mahmoud Samir FayedA general-purpose dynamic programming language for applications development.[21][22][23]
Rust2010Graydon Hoare (Mozilla)A language empowering everyone to build reliable and efficient software.
S-Lang1991John E. DavisA library with a powerful interpreter that provides facilities required by interactive applications such as display/screen management, keyboard input, keymaps, etc.[24]
SA-C2001Cameron ProjectSingle Assignment C (SA-C) is designed to be directly and intuitively translatable into circuits, including FPGAs.
SAC1994(Germany)Development spread to several institutions in Germany, Canada, and the UK. Functional language with C syntax.[25]
Seed72005Thomas MertesAn extensible general-purpose programming language.
Split-C1993 ?A parallel extension of the C programming language.
Squirrel2003Alberto DemichelisA light-weight scripting language.
Swift2014Chris Lattner (Apple)Swift can import any C library, optionally annotating C headers to map C types to Swift objects[26] and import libraries as Swift modules.[27] Swift has two-way bridging with Objective-C on platforms which support Apple's Objective-C runtime. Unlike Objective-C, Swift does not currently support C++ interoperation or exposing Swift types as C structs.
Telescript1990Marc PoratAn object-oriented programming language.
TypeScript2012MicrosoftSuperset of JavaScript.
Umple2008University of OttawaA language for both object-oriented programming and modeling with class diagrams and state diagrams.
Unified Parallel C2003 ?An extension of the C programming language designed for high-performance computing on large-scale parallel machines.
Zig2015Andrew KelleyA general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.[28]

References

  1. Wang, Wally (2007). Beginning programming for dummies (4th ed.). Indianapolis, IN: Wiley Pub. p. 359. ISBN 978-0-470-09968-1. OCLC 773827811.
  2. "Alef Language Reference Manual".
  3. "Glossary (The GNU Awk User's Guide)". www.gnu.org. Retrieved 2023-03-04.
  4. "The before-C language - JeeLabs". jeelabs.org. Retrieved 2023-03-04.
  5. "The C Family".
  6. "Scientific Numerical Computing".
  7. "cross platform Ch Shell Programming".
  8. "The Temple Operating System". 2017-03-25. Archived from the original on 2017-03-25. Retrieved 2019-04-16.
  9. "A Language Design Analysis of HolyC - Harrison Totty". harrison.totty.dev. Retrieved 2023-03-04.
  10. "Chapter 4. How JavaScript Was Created". speakingjs.com. Archived from the original on 2020-02-27. Retrieved 2020-06-13.
  11. "JavaScript language overview - JavaScript | MDN". developer.mozilla.org. Retrieved 2023-03-04.
  12. Reid, Jonathan (2013). JavaScript programmer's reference. Thomas Valentine. [Berkeley, Calif.]: Apress. p. 2. ISBN 978-1-4302-4630-5. OCLC 852144161.
  13. GitHub - tinyos/nesc: Master nesc repository., TinyOS, 2019-03-05, retrieved 2019-03-17
  14. "The nesC Language: A Holistic Approach to Networked Embedded Systems" (PDF).
  15. http://cdn.oreillystatic.com/en/assets/1/event/45/Go%20Presentation.pdf
  16. https://doc.cat-v.org/bell_labs/squeak/squeak.pdf
  17. "NXC - Not eXactly C".
  18. "NQC - Not Quite C".
  19. "PHP: History of PHP - Manual". www.php.net. Retrieved 2023-03-04.
  20. Mastering parallel programming with R : master the robust features of R parallel programming to accelerate your data science computations. Simon R. Chapple, Eilidh Troup, Thorsten Forster, Terence Sloan. Birmingham, UK. 2016. p. 156. ISBN 978-1-78439-462-2. OCLC 951337124.{{cite book}}: CS1 maint: location missing publisher (link) CS1 maint: others (link)
  21. Beginning Ring Programming - From Novice to Professional | Mansour Ayouni | Apress.
  22. "Control Structures - Third Style — Ring 1.16 documentation".
  23. Ring Team (23 October 2021). "The Ring programming language and other languages". ring-lang.net.
  24. "S-Lang Library Information Page".
  25. "Archived copy" (PDF). Archived from the original (PDF) on 2016-03-05. Retrieved 2015-05-11.{{cite web}}: CS1 maint: archived copy as title (link)
  26. "Swift Programming Language Evolution". GitHub. 17 October 2021.
  27. "Swift Programming Language Evolution". GitHub. 17 October 2021.
  28. "The Zig Programming Language".
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.