List of C-family programming languages
C-family programming languages is a loosely defined term referring to many programming languages sharing similarities, mainly flow-control syntax, but also in some other aspects. Due to the success of the C programming language and some of its derivatives, the family spans a large variety of programming paradigms, conceptual models, and run-time environments.
Language | Year started | Created by (at) | Comments | References |
---|---|---|---|---|
C | 1969-1973 | Dennis Ritchie (Bell Labs) | Was an enhancement of Ken Thompson's B language. | |
Ratfor | 1974 | Brian Kernighan (Bell Labs) | A hybrid of C and Fortran, implemented as a preprocessor for environments without easy access to C compilers. | |
C shell/tcsh | late 1970s | Bill Joy (UC Berkeley) | Scripting language and standard Unix shell. | |
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 of Simula 67, and through standardization and wide use has grown to encompass generic programming as well as its original object-oriented roots. | [1] |
AMPL | 1985 | Robert Fourer, David Gay and Brian Kernighan (Bell Labs) | It is an algebraic modeling language with elements of a scripting language. | |
Objective-C | 1986 | Brad Cox and Tom Love | It is an 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. | [1] |
C* | 1987 | Thinking Machines | object-oriented, data-parallel superset of ANSI C | |
Perl | 1988 | Larry Wall | Scripting language used extensively for system administration, text processing, and web server tasks. | [2] |
Java | 1991 | James Gosling (Sun Microsystems) | Created as the 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++. It also compiles to its own bytecode, a standard part of the language specification. It is strongly typed, a feature that is enforced by the VM. | [2] |
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. | [3] |
SAC | 1994 | (Germany) | Development spread to several institutions in Germany, Canada, and the UK. Functional language with C syntax. | [4] |
Alef | 1995 | Phil 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. | [5] |
Limbo | 1995 | Limbo succeeded Alef and is used in Inferno as Alef was used in Plan9. | ||
PHP | 1995 | Rasmus Lerdorf | Widely used as a server-side HTML scripting language. C-like syntax. | |
ECMAscript | 1995 | Brendan 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 based on C and Java syntax, it is primarily a functional programming language based on Self. | |
C-- | 1997 | Simon Peyton Jones, Norman Ramsey | generated mainly by compilers for very high-level languages | |
C# | 1999 | Anders Hejlsberg (Microsoft) | Created under the name "Cool", it is syntactically very similar to Java, though with a Smalltalk-like unified type system. | |
Ch | 2001 | Harry Cheng | A C/C++ scripting language with extensions for shell programming and numerical computing. | [6][7] |
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#. | |
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. | |
LSL | 2003 | ? | Created for the Second Life virtual world by Linden Lab. | |
Squirrel | 2003 | Alberto Demichelis | A light-weight scripting language | |
Go | 2007 | Rob 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. | |
OpenCL C | 2009 | Apple, Khronos Group | OpenCL specifies a modified subset of the C programming language for writing programs to run on various compute devices (e.g. GPUs, DSPs) | |
C0 | 2010 | Rob Arnold (CMU) | A safe subset of C with checked pointers and bounds-checked arrays. Created for CMU introductory computer courses. | [8] |
Swift (programming language) | 2014 | Chris Lattner (Apple) | Swift can import any C library, optionally annotating C headers to map C types to Swift objects[9] and import libraries as Swift modules.[10] 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. | |
AWK | 1977 | Alfred Aho, Peter Weinberger & Brian Kernighan (Bell Labs) | Designed for text processing and typically used as a data extraction and reporting tool. | |
BitC | 2006 | Johns Hopkins University | Aims to support formal program verification. | |
LPC (programming language) | 1995 | Lars 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. | |
Pike (programming language) | 1994 | Fredrik Hübinette | An interpreted, general-purpose, high-level, cross-platform, dynamic programming language, with a syntax similar to that of C. | |
Seed7 | 2005 | Thomas Mertes | An extensible general-purpose programming language. | |
Processing (programming language) | 2001 | Casey Reas, Benjamin Fry | An open source programming language and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities. | |
Split-C | 1993 | ? | A parallel extension of the C programming language. | |
Unified Parallel C | 2003 | ? | An extension of the C programming language designed for high-performance computing on large-scale parallel machines. | |
Cilk | 1994 | MIT Laboratory for Computer Science | General-purpose programming language designed for multithreaded parallel computing. | |
Chapel (programming language) | 2009 | Cray Inc. | Aims to improve the programmability of parallel computers in general and the Cray Cascade system in particular. | |
Fortress (programming language) | 2006 | Sun Labs | An experimental programming language for high-performance computing, created by Sun Microsystems with funding from DARPA's High Productivity Computing Systems project. | [11] |
Agora (programming language) | 1993 | ? | A reflective, prototype-based, object-oriented programming language that is based exclusively on message passing and not delegation. | |
Falcon (programming language) | 2003 | Giancarlo Niccolai | An open source, multi-paradigm programming language. | |
BCPL | 1966 | Martin Richards | A procedural, imperative, and structured computer programming language. | |
B (programming language) | 1969 | Ken Thompson | Designed for recursive, non-numeric, machine independent applications, such as system and language software. | |
Nim (programming language) | 2008 | Andreas Rumpf | An imperative, multi-paradigm, compiled programming language. | |
Nemerle | 2003 | Andreas Rumpf | A general-purpose high-level statically typed programming language designed for platforms using the Common Language Infrastructure (.NET/Mono). | |
ApeScript | ? | ? | An interpreted procedural dynamic-typed language. | |
Amiga E | 1993 | Wouter van Oortmerssen | A combination of many features from a number of languages, but follows the original C programming language most closely in terms of basic concepts. | |
Lite-C | 2007 | Atari Inc | A programming language for multimedia applications and personal computer games, using a syntax subset of the C language with some elements of the C++ language. | |
Newsqueak | early 1980s | Rob Pike | A 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 C. | [12] |
Not eXactly C (NXC) | 2006 | John Hansen | A 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. | [13] |
Not Quite C (NQC) | ~1998 | David Baum | An 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 based primarily 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. | [14] |
Oak (programming language) | 1991 | James Gosling (Sun Microsystems) | A programming language created initially for Sun Microsystems set-top box project. The language later evolved to become Java. | |
PROMAL | 1985 | Systems Management Associates | A C-like programming language for MS-DOS, Commodore 64, and Apple II. | |
Handel-C | 1996 | Oxford University Computing Laboratory | A high-level programming language which targets low-level hardware, most commonly used in the programming of FPGAs. It is a rich subset of C. | |
Dart (programming language) | 2013 | Lars Bak and Kasper Lund (Google) | A class-based, single inheritance, object-oriented language with C-style syntax. | |
CINT | 1997-1999? | ? | An interpreted version of C/C++, much in the way BeanShell is an interpreted version of Java. | |
Cg (programming language) | ? | Nvidia | Based 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. | |
nesC | ? | ? | A component-based, event-driven programming language used to build applications for the TinyOS platform. | |
R (programming language) | 1993 | Ross Ihaka and Robert Gentleman | A programming language and software environment for statistical computing and graphics. | |
Hack (programming language) | 2014 | Julien Verlaguet, Alok Menghrajani, Drew Paroski (Facebook) | A programming language for the HipHop Virtual Machine (HHVM). | |
Charm (programming language) | 1996 | ? | 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. | |
X Sharp | 2009 | COSMOS Development Team | A programming language designed to bring some of C-like language syntax to assembly language. | |
Claire (programming language) | 1994 | Yves Caseau | A high-level functional and object-oriented programming language with rule processing abilities. | |
Noop | 2009 | Attempts to blend the best features of "old" and "new" languages, while syntactically encouraging good programming practice. | ||
Neko (programming language) | 2005 | Nicolas Cannasse (Motion-Twin) | A high-level dynamically typed programming language | |
Axum (programming language) | 2009 | Microsoft | A domain specific concurrent programming language, based on the Actor model. | |
Umple | 2008 | University of Ottawa | A language for both object-oriented programming and modeling with class diagrams and state diagrams. | |
TOM (object-oriented programming language) | 1990s | ? | An object-oriented programming language that built on the lessons learned from Objective-C. | |
Telescript (programming language) | 1990 | Marc Porat | An object-oriented programming language. | |
Fantom (programming language) | 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. |
References
- 1 2 "The C Family". linuxfinances.info. Retrieved 2015-12-30.
- 1 2 "Programming language". www.cs.mcgill.ca. Retrieved 2015-12-30.
- ↑ "S-Lang Library Information Page".
- ↑ http://www.sac-home.org/publications/GrelSchoIJPP06.pdf
- ↑ "Alef Language Reference Manual".
- ↑ "Scientific Numerical Computing".
- ↑ "cross platform Ch Shell Programming".
- ↑ http://reports-archive.adm.cs.cmu.edu/anon/2010/CMU-CS-10-145.pdf
- ↑ https://github.com/apple/swift-evolution/blob/master/proposals/0044-import-as-member.md
- ↑ https://github.com/apple/swift-evolution/blob/master/proposals/0038-swiftpm-c-language-targets.md
- ↑ "Project Fortress: Wiki: Home — Project Kenai".
- ↑ http://cdn.oreillystatic.com/en/assets/1/event/45/Go%20Presentation.pdf
- ↑ "NXC - Not eXactly C".
- ↑ "NQC - Not Quite C".
This article is issued from Wikipedia - version of the 10/20/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.