Список языков программирования C-семейства - List of C-family programming languages

Благодаря успеху языка программирования C и некоторых его производных, языки программирования семейства C охватывают большое количество парадигм программирования, концептуальных моделей и сред выполнения.

Язык Год начался Создано (в) Описание / Комментарии использованная литература
BCPL 1966 г. Мартин Ричардс Процедурный, императивный и структурированный язык компьютерного программирования. в
B 1969 г. Кен Томпсон Разработан для рекурсивных, нечисловых, машинно-независимых приложений, таких как системное и языковое программное обеспечение.
C 1969–1973 Деннис Ричи ( Bell Labs ) Был усиление Кен Томпсон «ы языка B .
Ratfor 1974 г. Брайан Керниган (Bell Labs) Гибрид C и Fortran , реализованный как препроцессор для сред без легкого доступа к компиляторам C.
AWK 1977 г. Альфред Ахо , Питер Вайнбергер и Брайан Керниган ( Bell Labs ) Предназначен для обработки текста и обычно используется в качестве инструмента для извлечения данных и создания отчетов.
C оболочка / tcsh 1978 г. Билл Джой ( Калифорнийский университет в Беркли ) Язык сценариев и стандартная оболочка Unix .
C ++ 1979 г. Бьярн Страуструп ( Bell Labs ) Названный «C с классами» и переименованный в C ++ в 1983 году; он начался как повторная реализация статической объектной ориентации в традициях Simula 67, и благодаря стандартизации и широкому использованию расширился до охвата общего программирования, а также его исходных объектно-ориентированных корней.
Newsqueak начало 1980-х Роб Пайк Язык параллельного программирования для написания прикладного программного обеспечения с интерактивным графическим пользовательским интерфейсом. На синтаксис и семантику Newsqueak влияет язык C, но его подход к параллелизму был вдохновлен CSP .
AMPL 1985 г. Роберт Фурер , Дэвид Гей и Брайан Керниган ( Bell Labs ) Алгебраический язык моделирования с элементами языка сценариев.
ПРОМАЛЬНЫЙ 1985 г. Systems Management Associates C-подобный язык программирования для MS-DOS, Commodore 64 и Apple II.
Цель-C 1986 г. Брэд Кокс и Том Лав Объектно-ориентированный динамический язык, в значительной степени основанный на Smalltalk . Свободно определенная де-факто стандартная библиотека исходных разработчиков теперь в значительной степени вытеснена вариациями OpenStep FoundationKit.
C * 1987 г. Думающие машины Объектно-ориентированное , данные параллельного надмножества ANSI C .
Perl 1988 г. Ларри Уолл Язык сценариев широко используется для системного администрирования, обработки текста и задач веб-сервера.
Телескрипт 1990 г. Марк Порат Объектно-ориентированный язык программирования.
Джава 1991 г. Джеймс Гослинг ( Sun Microsystems ) Создан как Oak и выпущен для публики в 1995 году. Он основан на OODL, в значительной степени вдохновленном Objective-C, хотя и с синтаксисом, основанным в некоторой степени на C ++. Он также компилируется в собственный байт-код , стандартную часть спецификации языка. Это строго типизированная функция, которая обеспечивается виртуальной машиной.
Сленг 1991 г. Джон Э. Дэвис Библиотека с мощным интерпретатором, которая предоставляет возможности, необходимые для интерактивных приложений, такие как управление дисплеем / экраном, ввод с клавиатуры, раскладки клавиатуры и т. Д.
Сплит-C 1993 г. ? Параллельное расширение языка программирования C.
Агора 1993 г. ? Рефлексивный, основанный на прототипах, объектно-ориентированный язык программирования, основанный исключительно на передаче сообщений, а не на делегировании.
SAC 1994 г. (Германия) Развитие распространилось на несколько учреждений в Германии, Канаде и Великобритании. Функциональный язык с синтаксисом C.
Щука 1994 г. Фредрик Хюбинетт Интерпретируемый универсальный высокоуровневый кроссплатформенный динамический язык программирования с синтаксисом, аналогичным синтаксису C.
Силк 1994 г. Лаборатория компьютерных наук Массачусетского технологического института Язык программирования общего назначения, предназначенный для многопоточных параллельных вычислений.
Алеф 1995 г. Фил Уинтерботтом (Bell Labs) Создан для системного программирования на Plan 9 из операционной системы Bell Labs ; он был опубликован в 1995 году, но в конечном итоге от него отказались. Он обеспечил существенную языковую поддержку для параллельного программирования .
Лимбо 1995 г. Limbo пришла на смену Alef и используется в Inferno, как Alef в Plan9.
PHP 1995 г. Расмус Лердорф Широко используется как язык сценариев на стороне сервера. C-подобный синтаксис.
ECMAScript 1995 г. Брендан Эйх ( Netscape ) Созданный как Mocha и LiveScript, анонсированный в 1995 году, в следующем году был выпущен как JavaScript . В первую очередь это язык сценариев, используемый при разработке веб-страниц, а также во многих прикладных средах, таких как Adobe Flash и QtScript . Хотя изначально он был основан на Scheme и Self , это прежде всего объектно-ориентированный язык, основанный на прототипах, с синтаксисом, основанным на Java .
LPC 1995 г. Ларс Пенсьё Первоначально разработан для облегчения создания MUD на основе LPMuds . Несмотря на то, что он был разработан для разработки игр, его гибкость позволила использовать его для различных целей.
C-- 1997 г. Саймон Пейтон Джонс , Норман Рэмси Генерируется в основном компиляторами для языков очень высокого уровня.
E 1997 г. Марк С. Миллер , Дэн Борнштейн (Электрические сообщества) Разработан с учетом требований безопасности вычислений , что достигается главным образом за счет строгого соблюдения модели объектно-ориентированных вычислений.
C # 1999 г. Андерс Хейлсберг ( Microsoft ) Созданный под названием "Cool", он синтаксически очень похож на Java, но имеет унифицированную систему типов, подобную Smalltalk .
Ch 2001 г. Гарри Ченг Язык сценариев AC / C ++ с расширениями для программирования оболочки и численных вычислений.
D 2001 г. Уолтер Брайт ( Цифровой Марс ) На основе C ++, но с несовместимым синтаксисом, имеющим черты других C-подобных языков, таких как Java и C #.
Циклон 2001 г. Грег Моррисетт ( AT&T Labs ) Предназначен для безопасного диалекта языка C. Он разработан, чтобы избежать переполнения буфера и других уязвимостей, присущих программам на языке C, без потери мощности и удобства C как инструмента для системного программирования.
SA-C 2001 г. Кэмерон проект Single Assignment C (SA-C) предназначен для прямого и интуитивного преобразования в схемы, включая FPGA.
Cg 2002 г. Nvidia Основываясь на языке программирования C и хотя они используют один и тот же синтаксис, некоторые функции C были изменены, и были добавлены новые типы данных, чтобы сделать Cg более подходящим для программирования графических процессоров. Этот язык подходит только для программирования на GPU и не является общим языком программирования.
LSL 2003 г. ? Создано Linden Lab для виртуального мира Second Life .
Белка 2003 г. Альберто Демикелис Легкий язык сценариев.
Унифицированный параллельный C 2003 г. ? Расширение языка программирования C, предназначенное для высокопроизводительных вычислений на крупномасштабных параллельных машинах.
eC 2004 г. Жером Жаковелла-Сен-Луи (Эсере) Супер-набор C, добавляющий объектно-ориентированные функции (вдохновленный C ++), свойства, динамические модули и отражение, разработанный в рамках проекта Ecere SDK, кроссплатформенного SDK с открытым исходным кодом.
Семя7 2005 г. Томас Мертес Расширяемый язык программирования общего назначения.
BitC 2006 г. Университет Джона Хопкинса Нацелен на поддержку формальной проверки программы.
Крепость 2006 г. Sun Labs Экспериментальный язык программирования для высокопроизводительных вычислений, созданный Sun Microsystems при финансовой поддержке проекта DARPA High Productivity Computing Systems.
Не точно C (NXC) 2006 г. Джон Хансен Язык программирования высокого уровня для Lego Mindstorms NXT . NXC, сокращение от Not eXactly C, основан на кодах следующего байта, языке ассемблера. NXC имеет синтаксис, подобный C. Он является частью BricX IDE, которая объединяет редактор, инструменты для взаимодействия с кирпичом и компилятор, но поддерживает больше языков.
Идти 2007 г. Роб Пайк , Кен Томпсон и Роберт Гриземер ( Google ) Выпущенный в 2009 году, это параллельный язык с быстрой компиляцией, синтаксисом, подобным Java, но без объектно-ориентированных функций и строгой типизации .
OpenCL C 2009 г. Apple , Khronos Group OpenCL определяет модифицированное подмножество языка программирования C для написания программ для работы на различных вычислительных устройствах (например, GPU, DSP).
С 0 2010 г. Роб Арнольд (CMU) Безопасное подмножество C с проверенными указателями и массивами с проверкой границ. Создан для вводных компьютерных курсов КМУ .
Быстрый 2014 г. Крис Латтнер ( Apple ) Swift может импортировать любую библиотеку C, при необходимости аннотируя заголовки C для сопоставления типов C с объектами Swift и импортировать библиотеки как модули Swift. Swift имеет двустороннее соединение с Objective-C на платформах, которые поддерживают среду выполнения Apple Objective-C. В отличие от Objective-C, Swift в настоящее время не поддерживает взаимодействие с C ++ и не предоставляет типы Swift как структуры C.
Часовня 2009 г. Cray Inc. Направлен на улучшение программируемости параллельных компьютеров в целом и системы Cray Cascade в частности.
Ним 2008 г. Андреас Рампф Императивный, мультипарадигмальный компилируемый язык программирования.
Nemerle 2003 г. Андреас Рампф Универсальный язык программирования высокого уровня со статической типизацией, разработанный для платформ, использующих Common Language Infrastructure (.NET / Mono).
ApeScript ? ? Интерпретируемый процедурный язык с динамической типизацией.
Амига E 1993 г. Воутер ван Оортмерссен Комбинация многих функций из нескольких языков, но наиболее близко следует исходному языку программирования C с точки зрения основных концепций.
HolyC 2005 г. Терри А. Дэвис Диалект C для собственной операционной системы Терри TempleOS . Наиболее заметными изменениями являются передача аргументов, именование типов переменных (U8 вместо unsigned char, I32 вместо int и т. Д.), Структура кода («Функция main () отсутствует. Любой код вне функций выполняется при запуске. , по порядку "), структура оператора переключения и замена некоторых частей препроцессора, например удаление #define и использование символа '$' в качестве escape-символа.
Lite-C 2007 г. Atari Inc Язык программирования для мультимедийных приложений и игр для персональных компьютеров, использующий синтаксическое подмножество языка C с некоторыми элементами языка C ++.
Не совсем C (NQC) ~ 1998 Дэвид Баум An встроенные системы программирования языка, интерфейс прикладного программирования (API), и родной инструментарий байткод компилятор для Lego Mindstorms платформы RCX, системы Cybermaster и LEGO Spybotics. Он предназначен для замены ROBOLAB IDE на основе LabVIEW . Он в основном основан на языке C, но имеет определенные ограничения, такие как максимальное количество подпрограмм и разрешенных переменных. Позже был заменен на NXC , улучшенную версию, созданную для платформы Mindstorms NXT.
дуб 1991 г. Джеймс Гослинг ( Sun Microsystems ) Язык программирования, изначально созданный для проекта телевизионных приставок Sun Microsystems. Позже язык превратился в Java.
Гендель-С 1996 г. Вычислительная лаборатория Оксфордского университета Язык программирования высокого уровня, предназначенный для низкоуровневого оборудования, наиболее часто используемый при программировании ПЛИС. Это богатое подмножество C.
Дротик 2013 Ларс Бак и Каспер Лунд ( Google ) Основанный на классах, объектно-ориентированный язык с единичным наследованием и синтаксисом в стиле C.
CINT 1997–1999? Масахару Гото Интерпретируемая версия C / C ++, во многом похожая на то, как BeanShell является интерпретируемой версией Java.
р 1993 г. Росс Ихака и Роберт Джентльмен Язык программирования и программная среда для статистических вычислений и графики.
Взломать 2014 г. Жюльен Верлаге, Алок Менграджани, Дрю Пароски ( Facebook ) Язык программирования для виртуальной машины HipHop (HHVM).
Очарование 1996 г. ? Объектно-ориентированный язык компьютерного программирования, имеющий сходство с языками RTL / 2, Pascal и C, а также содержащий некоторые собственные уникальные особенности.
Клэр 1994 г. Ив Казо Функциональный и объектно-ориентированный язык программирования высокого уровня с возможностью обработки правил.
Нооп 2009 г. Google Попытки совместить лучшие черты «старых» и «новых» языков, при этом синтаксически поощряя хорошие практики программирования.
Неко 2005 г. Николя Каннас ( Motion-Twin ) Язык программирования высокого уровня с динамической типизацией.
Аксум 2009 г. Microsoft Язык параллельного программирования для конкретной предметной области, основанный на модели акторов.
Ржавчина 2010 г. Грейдон Хоар ( Mozilla ) Язык, позволяющий каждому создавать надежное и эффективное программное обеспечение.
Машинопись 2012 г. Microsoft Надмножество JavaScript.
Umple 2008 г. Университет Оттавы Язык как для объектно-ориентированного программирования, так и для моделирования с диаграммами классов и диаграммами состояний.
TOM (объектно-ориентированный язык программирования) 1990-е годы ? Объектно-ориентированный язык программирования, основанный на уроках, извлеченных из Objective-C.
Фантом 2005 г. Брайан Франк и Энди Франк Объектно-ориентированный, функциональный субъект, работающий одновременно с системой типов, допускающей значение NULL, с упором на прагматизм при построении корпоративных систем, работающих на основе JVM, CLR или JavaScript.
другие Неизвестный Неизвестный Произносимое «NES-see», это расширение языка программирования C, разработанное для воплощения концепций структурирования и модели выполнения TinyOS. TinyOS - это управляемая событиями операционная система, разработанная для узлов сенсорной сети с очень ограниченными ресурсами.
Зиг 2015 г. Эндрю Келли Универсальный язык программирования и набор инструментов для поддержки надежного, оптимального и многоразового программного обеспечения.

использованная литература