Список языков программирования 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 г. | Попытки совместить лучшие черты «старых» и «новых» языков, при этом синтаксически поощряя хорошие практики программирования. | ||
Неко | 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 г. | Эндрю Келли | Универсальный язык программирования и набор инструментов для поддержки надежного, оптимального и многоразового программного обеспечения. |