This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "List of C-family programming languages" – news ·newspapers ·books ·scholar ·JSTOR(June 2015) (Learn how and when to remove this message) |
TheC-family programming languages share significant features of theC programming language. Many of these 70 languages were developmentally influenced by C due to its success and ubiquity. The family also includes predecessors that influenced C's design such asBCPL.
Notable programming sources use terms likeC-style,C-like, adialect of C, havingC-like syntax. The termcurly bracket programming language denotes a language that shares C's block syntax.[1][2]
C-family languages have features like:
{}
), a.k.a. braces, a.k.a. curly brackets()
)C-family languages span multiple programming paradigms, conceptual models, and run-time environments.
Language | Year begun | Created by (at) | Brief description, relationship to C | References |
---|---|---|---|---|
Agora | 1993 | Dr. Patrick Steyaert | Areflective,prototype-based,object-oriented programming language that is based exclusively onmessage passing and not delegation. | |
Alef | 1995 | Phil Winterbottom (Bell Labs) | Created for systems programming on thePlan 9 from Bell Labs operating system; published in 1995 and eventually abandoned. It provided substantial language support forconcurrent programming. | [3] |
Amiga E | 1993 | Wouter van Oortmerssen | A combination of many features from several languages, but follows the original C language most closely in basic concepts. | |
AMPL | 1985 | Robert Fourer, David Gay andBrian Kernighan (Bell Labs) | Analgebraic modeling language with elements of a scripting language. | |
AWK | 1977 | Alfred Aho,Peter Weinberger &Brian Kernighan (Bell Labs) | Designed for text processing and typically used as a data extraction and reporting tool. | [4] |
Axum | 2009 | Microsoft | A domain specific concurrent language, based on theactor model. | |
BCPL | 1966 | Martin Richards | A procedural, imperative, and structured language. Precursor to C. | [5] |
C | 1969-1973 | Dennis Ritchie (Bell Labs) | Enhancement ofKen Thompson'sB language. | [2] |
C shell/tcsh | 1978 | Bill Joy (UC Berkeley) | Scripting language and standardUnix shell. | |
C* | 1987 | Thinking Machines | Object-oriented, data-parallelANSI C superset. | |
C++ | 1979 | Bjarne 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 ofSimula 67, and through standardization and wide use has grown to encompassgeneric programming as well as its original object-oriented roots. | [6][2] |
C-- | 1997 | Simon Peyton Jones, Norman Ramsey | Generated mainly by compilers for very high-level languages. | |
Cg | 2002 | Nvidia | Based on the C 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. | |
Ch | 2001 | Harry Cheng | A C/C++ scripting language with extensions for shell programming and numerical computing. | [7][8] |
Chapel | 2009 | Cray Inc. | Aims to improve the programmability of parallel computers in general and the Cray Cascade system in particular. | |
Charm | 1996 | P. Nowosad | An object-oriented language with similarities to the RTL/2, Pascal and C languages in addition to containing some unique features of its own. | |
Cilk | 1994 | MIT Laboratory for Computer Science | General-purpose language designed for multithreaded parallel computing. | |
CINT | 1997-1999? | Masaharu Goto | An interpreted version of C/C++, much in the way BeanShell is an interpreted version of Java. | |
Claire | 1994 | Yves Caseau | A high-level functional and object-oriented language with rule processing abilities. | |
Cyclone | 2001 | Greg 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 byMicrosoft in the early2000s as a modern, object-oriented language for the.NET framework. | [2] |
D | 2001 | Walter Bright (Digital Mars) | Based on C++, but with an incompatible syntax having traits from other C-like languages like Java and C#. | |
Dart | 2013 | Lars 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 withsecure computing in mind, accomplished chiefly by strict adherence to the object-oriented computing model. | |
eC | 2004 | Jé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. | |
Fantom | 2005 | Brian Frank and Andy Frank | An 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. | |
Fusion (formerly Ć) | 2011 | Piotr Fusik and Adrian Matoga | Fusion is a language based on C and C#. Aimed at crafting portable programming libraries, with syntax akin to C#. The translated code is lightweight (no virtual machine, emulation nor large runtime). | |
Go | 2007 | Rob Pike,Ken Thompson, andRobert Griesemer (Google) | Released to public in 2009, it is a concurrent language with fast compilations, Java-like syntax, but no object-oriented features andstrong typing. | |
Hack | 2014 | Julien Verlaguet, Alok Menghrajani, Drew Paroski (Facebook) | A language for theHipHop Virtual Machine (HHVM). | |
Handel-C | 1996 | Oxford University Computing Laboratory | A high-level 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 systemTempleOS. | [9][10] |
Java | 1991 | James Gosling (Sun Microsystems) | Created asOak, 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 itsown bytecode, and is strongly typed. | [2] |
JavaScript | 1995 | Brendan Eich (Netscape) | Created as Mocha and LiveScript, announced in 1995, shipped the next year asJavaScript. Primarily ascripting language used in Web page development as well as numerous application environments such asAdobe Flash andQtScript. Though initially based onScheme andSelf, it is primarily aprototype-basedobject-oriented language with a syntax based onJava.[11] Standardized asECMAScript. | [12][13] |
Limbo | 1995 | Limbo succeeded Alef and is used inInferno as Alef was used in Plan9. | ||
LSL | 2003 | Robin Liden | Created for theSecond Life virtual world byLinden Lab. | |
Lite-C | 2007 | Atari Inc | A language for multimedia applications and personal computer games, using a syntax subset of the C language with some elements of the C++ language. | |
LPC | 1995 | Lars Pensjö | Developed originally to facilitate MUD building onLPMuds. Though designed for game development, its flexibility has led to it being used for various purposes. | |
Neko | 2005 | Nicolas Cannasse (Motion-Twin) | A high-level dynamically typed language. | |
Nemerle | 2003 | Kamil Skalski, Michał Moskal, Prof. Leszek Pacholski, Paweł Olszta atWrocław University | A general-purpose high-level statically typed language designed for platforms using the Common Language Infrastructure (.NET/Mono). | |
nesC | 2003 | David Gay,Philip Levis, Robert von Behren,Matt Welsh,Eric Brewer, &David Culler | Pronounced "NES-see", it is an extension to the C language designed to embody the structuring concepts and execution model ofTinyOS, an event-driven operating system designed for sensor network nodes with very limited resources. | [14][15] |
Newsqueak | 1988 | Rob Pike | A concurrent language for writing application software with interactive graphical user interfaces, the syntax and semantics are influenced by the C language, but its approach to concurrency was inspired byCommunicating sequential processes (CSP). | [16][17] |
Nim | 2008 | Andreas Rumpf | An imperative, multi-paradigm, compiled language. | |
Noop | 2009 | Attempts to blend the best features of "old" and "new" languages, while syntactically encouraging good programming practice. | ||
Not eXactly C (NXC) | 2006 | John Hansen | A high-level language for theLego Mindstorms NXT. NXC, which is short for Not eXactly C, is based on Next Byte Codes, anassembly 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. | [18] |
Not Quite C (NQC) | 1998 (approx.) | David Baum | Anembedded systems programming language, application programming interface (API), and native bytecode compiler toolkit for theLego Mindstorms RCX platform, Cybermaster and LEGO Spybotics systems. It is intended as a drop-in replacement for theLabVIEW-based ROBOLAB IDE. It is primarily based on the C language but has specific limits, such as a maximum number of subroutines and variables allowed. Later replaced withNot eXactly C (NXC), an enhanced version created for the Mindstorms NXT platform. | [19] |
Oak | 1991 | James Gosling (Sun Microsystems) | A language created initially for Sun Microsystems set-top box project, it later evolved to become Java. | |
Objective-C | 1986 | Brad Cox and Tom Love | An object-oriented dynamic language based heavily onSmalltalk. A loosely defined de facto standard library by the original developers has now largely been displaced byOpenStep FoundationKit variants. | [6] |
OpenCL C | 2009 | Apple,Khronos Group | OpenCL specifies a modified subset of the C language for writing programs to run on various compute devices, e.g., GPUs, DSPs. | |
Perl | 1988 | Larry Wall | Scripting language used extensively for system administration, text processing, and web server tasks. | [2] |
PHP | 1995 | Rasmus Lerdorf | Widely used as a server-side scripting language. C-like syntax. | [20] |
Pike | 1994 | Fredrik Hübinette | An interpreted, general-purpose, high-level, cross-platform, dynamic programming language, with a syntax similar to that of C. | |
PROMAL | 1985 | Systems Management Associates | A C-like language for MS-DOS, Commodore 64, and Apple II. | |
R | 1993 | Ross Ihaka andRobert Gentleman | A language and software environment for statistical computing and graphics. | [21] |
Ratfor | 1974 | Brian Kernighan (Bell Labs) | A hybrid of C andFortran, implemented as a preprocessor for environments with no easy access to C compilers. | |
Ring | 2016 | Mahmoud Samir Fayed | A general-purpose dynamic language for applications development. | [22][23][24] |
Ruby | 1995 | Yukihiro Matsumoto | An interpreted, high-level, general-purpose language which supports multiple programming paradigms. | |
Rust | 2010 | Graydon Hoare (Mozilla) | A language empowering everyone to build reliable and efficient software. | |
S-Lang | 1991 | John E. Davis | A library with a powerful interpreter that provides facilities required by interactive applications such as display/screen management, keyboard input, keymaps, etc. | [25] |
SA-C | 2001 | Cameron Project | Single Assignment C (SA-C) is designed to be directly and intuitively translatable into circuits, including FPGAs. | |
SAC | 1994 | (Germany) | Development spread to several institutions in Germany, Canada, and the UK. Functional language with C syntax. | [26] |
Seed7 | 2005 | Thomas Mertes | An extensible general-purpose language. | |
Split-C | 1993 | ? | A parallel extension of the C language. | |
Squirrel | 2003 | Alberto Demichelis | A light-weight scripting language. | |
Swift | 2014 | Chris Lattner (Apple) | Swift can import any C library, optionally annotating C headers to map C types to Swift objects[27] and import libraries as Swift modules.[28] 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. | |
Telescript | 1990 | Marc Porat | An object-oriented language. | |
TypeScript | 2012 | Microsoft | JavaScript superset. | |
Umple | 2008 | University of Ottawa | A language for both object-oriented programming and modeling with class diagrams and state diagrams. | |
Unified Parallel C | 2003 | ? | An extension of the C language designed for high-performance computing on large-scale parallel machines. | |
V (Vlang) | 2019 | Alexander Medvednikov | A general-purpose statically typed compiled language for ease of use, safety, speed, and maintainable software. | [29] |
Zig | 2015 | Andrew Kelley | A general-purpose language and toolchain for maintaining robust, optimal, and reusable software. | [30] |
{{cite book}}
: CS1 maint: location missing publisher (link) CS1 maint: others (link){{cite book}}
:|work=
ignored (help){{cite web}}
: CS1 maint: archived copy as title (link)