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

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

ЯзыкГод началсяСоздано (в)КомментарииРекомендации
E1997Марк С. Миллер, Дэн Борнштейн (Электрические сообщества)Разработано с безопасные вычисления в виду, что достигается главным образом за счет строгого соблюдения модели объектно-ориентированных вычислений.
C1969-1973Деннис Ричи (Bell Labs )Было улучшение Кен Томпсон с Язык B.
Ratfor1974Брайан Керниган (Bell Labs)Гибрид C и Фортран, реализованный как препроцессор для сред без легкого доступа к компиляторам C.
Оболочка C /tcsh1978Билл Джой (Калифорнийский университет в Беркли )Язык сценариев и стандарт Оболочка Unix.
C ++1979Бьярне Страуструп (Bell Labs )Названный «C с классами» и переименованный в C ++ в 1983 году; он начался как повторная реализация статической объектной ориентации в традиции Симула 67, и благодаря стандартизации и широкому использованию расширилось до общее программирование а также его исходные объектно-ориентированные корни.[1]
AMPL1985Роберт Фурер, Дэвид Гей и Брайан Керниган (Bell Labs )Это язык алгебраического моделирования с элементами скриптового языка.
Цель-C1986Брэд Кокс и Том ЛавЭто объектно-ориентированный динамический язык, в значительной степени основанный на Болтовня. Свободно определенная де-факто стандартная библиотека исходных разработчиков теперь в значительной степени заменена вариациями на OpenStep FoundationKit.[1]
C *1987Думающие машиныобъектно-ориентированный, параллельный набор данных ANSI C
Perl1988Ларри УоллЯзык сценариев широко используется для системного администрирования, обработки текста и задач веб-сервера.[нужна цитата ]
Ява1991Джеймс Гослинг (Sun Microsystems )Создано как дуб и выпущен для широкой публики в 1995 году. Это OODL, основанная на Objective-C, хотя синтаксис в некоторой степени основан на C ++. Он также компилируется в свой собственный байт-код, стандартная часть спецификации языка. Он строго типизирован, и эта функция обеспечивается виртуальной машиной.[нужна цитата ]
Сленг1991Джон Э. ДэвисБиблиотека с мощным интерпретатором, который предоставляет возможности, необходимые для интерактивных приложений, такие как управление дисплеем / экраном, ввод с клавиатуры, раскладки клавиатуры и т. Д.[2]
SAC1994(Германия)Развитие распространилось на несколько учреждений в Германии, Канаде и Великобритании. Функциональный язык с синтаксисом C.[3]
Алеф1995Фил Уинтерботтом (Bell Labs)Создан для системного программирования на План 9 от Bell Labs Операционная система; он был опубликован в 1995 году, но в конечном итоге от него отказались. Он обеспечил существенную языковую поддержку для параллельное программирование.[4]
Лимбо1995Лимбо пришёл на смену Алефу и используется в Inferno as Alef использовался в Plan9.
PHP1995Расмус ЛердорфШироко используется как язык сценариев HTML на стороне сервера. C-подобный синтаксис.
ECMAScript1995Брендан Эйх (Netscape )Создан как Mocha и LiveScript, анонсирован в 1995 году, в следующем году выпущен как JavaScript. В первую очередь язык сценариев используется при разработке веб-страниц, а также в различных средах приложений, таких как Adobe Flash и QtScript. Хотя изначально на основе Схема и Себя, это прежде всего на основе прототипа объектно-ориентированный язык с синтаксисом на основе Ява[5][нужна цитата ]
C--1997Саймон Пейтон Джонс, Норман Рэмсигенерируется в основном компиляторами для языков очень высокого уровня
C #1999Андерс Хейлсберг (Microsoft )Созданный под названием "Cool", он синтаксически очень похож на Java, но с Болтовня -подобная унифицированная система типов.
Ch2001Гарри ЧенгЯзык сценариев C / C ++ с расширениями для программирования оболочки и численных вычислений.[6][7]
D2001Уолтер Брайт (Цифровой Марс )На основе C ++, но с несовместимым синтаксисом, имеющим черты других C-подобных языков, таких как Java и C #.
eC2004Жером Жаковелла-Сен-Луи (Эсере)Супернабор C, добавляющий объектно-ориентированные функции (на основе C ++), свойства, динамические модули и отражение, разработанный в рамках проекта Ecere SDK, кроссплатформенного SDK с открытым исходным кодом.
Циклон2001Грег Моррисетт (AT&T Labs )Предназначен для безопасного диалекта языка C. Он разработан, чтобы избежать переполнения буфера и других уязвимостей, которые присущи программам на C, без потери мощности и удобства C как инструмента для системного программирования.
LSL2003?Создан для Вторая жизнь виртуальный мир Linden Lab.
Белка2003Альберто ДемикелисЛегкий скриптовый язык
Идти2007Роб Пайк, Кен Томпсон, и Роберт Гриземер (Google )Выпущенный для публики в 2009 году, это параллельный язык с быстрой компиляцией, синтаксисом, подобным Java, но без объектно-ориентированных функций и строгая типизация.
OpenCL C2009яблоко, Хронос ГруппOpenCL определяет модифицированное подмножество языка программирования C для написания программ для работы на различных вычислительных устройствах (например, графических процессорах, DSP)
C02010Роб Арнольд (CMU)Безопасное подмножество C с проверенными указателями и массивами с проверкой границ. Предназначен для CMU вводные компьютерные курсы.[8]
Быстрый2014Крис Латтнер (яблоко )Swift может импортировать любую библиотеку C, при необходимости аннотируя заголовки C для сопоставления типов C с объектами Swift.[9] и импортировать библиотеки как модули Swift.[10] Swift имеет двустороннее соединение с Objective-C на платформах, которые поддерживают среду выполнения Apple Objective-C. В отличие от Objective-C, Swift в настоящее время не поддерживает взаимодействие с C ++ и не предоставляет типы Swift как структуры C.
AWK1977Альфред Ахо, Питер Вайнбергер & Брайан Керниган (Bell Labs )Предназначен для обработки текста и обычно используется в качестве инструмента для извлечения данных и создания отчетов.
BitC2006Университет Джона ХопкинсаНацелен на поддержку формальной проверки программы.
LPC1995Ларс ПенсьёПервоначально разработан для облегчения построения MUD на LP Грязи. Несмотря на то, что он предназначен для разработки игр, его гибкость позволила использовать его для различных целей.
Щука1994Фредрик ХюбинеттИнтерпретируемый универсальный высокоуровневый кроссплатформенный динамический язык программирования с синтаксисом, аналогичным синтаксису C.
Семя72005Томас МертесРасширяемый язык программирования общего назначения.
Обработка2001Кейси Риас, Бенджамин ФрайЯзык программирования с открытым исходным кодом и интегрированная среда разработки (IDE), созданные для сообществ в области электронного искусства, нового медиа-искусства и визуального дизайна.
Сплит-C1993?Параллельное расширение языка программирования C.
Унифицированный параллельный C2003?Расширение языка программирования C, предназначенное для высокопроизводительных вычислений на крупномасштабных параллельных машинах.
Силк1994Лаборатория компьютерных наук Массачусетского технологического институтаЯзык программирования общего назначения, предназначенный для многопоточных параллельных вычислений.
Часовня2009Cray Inc.Нацелен на улучшение программируемости параллельных компьютеров в целом и системы Cray Cascade в частности.
Крепость2006Sun LabsЭкспериментальный язык программирования для высокопроизводительных вычислений, созданный Sun Microsystems при финансовой поддержке проекта DARPA High Productivity Computing Systems.[11]
Агора1993?Рефлексивный, основанный на прототипах, объектно-ориентированный язык программирования, который основан исключительно на передаче сообщений, а не на делегировании.
BCPL1966Мартин РичардсПроцедурный, императивный и структурированный язык компьютерного программирования.
B1969Кен ТомпсонРазработан для рекурсивных, нечисловых, машинно-независимых приложений, таких как системное и языковое программное обеспечение.
Ним2008Андреас РампфИмперативный, мультипарадигмальный компилируемый язык программирования.
Nemerle2003Андреас РампфУниверсальный язык программирования высокого уровня со статической типизацией, разработанный для платформ, использующих Common Language Infrastructure (.NET / Mono).
ApeScript??Интерпретируемый процедурный язык с динамической типизацией.
Амига E1993Воутер ван ОортмерссенКомбинация многих функций из нескольких языков, но наиболее близко следует исходному языку программирования C с точки зрения основных концепций.
Lite-C2007Atari IncЯзык программирования для мультимедийных приложений и игр для персональных компьютеров, использующий синтаксическое подмножество языка C с некоторыми элементами языка C ++.
Newsqueakначало 1980-хРоб ПайкЯзык параллельного программирования для написания прикладного программного обеспечения с интерактивным графическим пользовательским интерфейсом. На синтаксис и семантику Newsqueak влияет язык C, но его подход к параллелизму был вдохновлен CSP.[12]
Не совсем C (NXC)2006Джон ХансенЯзык программирования высокого уровня для Лего Mindstorms NXT. NXC, сокращение от Not eXactly C, основан на кодах следующего байта, языке ассемблера. NXC имеет синтаксис, подобный C. Он является частью BricX IDE, которая объединяет редактор, инструменты для взаимодействия с модулем и компилятор, но поддерживает больше языков.[13]
Не совсем C (NQC)~1998Дэвид БаумAn встроенные системы язык программирования, интерфейс прикладного программирования (API) и набор инструментов компилятора байт-кода для Лего Mindstorms Платформа RCX, системы Cybermaster и LEGO Spybotics. Он предназначен для замены LabVIEW ROBOLAB IDE. Он основан в первую очередь на языке C, но имеет определенные ограничения, такие как максимальное разрешенное количество подпрограмм и переменных. Позже заменен на NXC, расширенная версия, созданная для платформы Mindstorms NXT.[14]
дуб1991Джеймс Гослинг (Sun Microsystems )Язык программирования, изначально созданный для проекта телевизионных приставок Sun Microsystems. Позже язык превратился в Java.
PROMAL1985Systems Management AssociatesC-подобный язык программирования для MS-DOS, Commodore 64 и Apple II.
Гендель-C1996Вычислительная лаборатория Оксфордского университетаЯзык программирования высокого уровня, предназначенный для низкоуровневого оборудования, наиболее часто используемый при программировании ПЛИС. Это богатое подмножество C.
Дротик2013Ларс Бак и Каспер Лунд (Google )Основанный на классах, объектно-ориентированный язык с единым наследованием и синтаксисом в стиле C.
CINT1997-1999?Масахару ГотоИнтерпретируемая версия C / C ++, во многом напоминающая интерпретируемую версию Java в BeanShell.
Cg2002NvidiaОсновываясь на языке программирования C и хотя они используют один и тот же синтаксис, некоторые функции C были изменены и добавлены новые типы данных, чтобы сделать Cg более подходящим для программирования графических процессоров. Этот язык подходит только для программирования на GPU и не является общим языком программирования.
р1993Росс Ихака и Роберт ДжентльменЯзык программирования и программная среда для статистических вычислений и графики.
Взломать2014Жюльен Верлаге, Алок Менграджани, Дрю Пароски (Facebook )Язык программирования для виртуальной машины HipHop (HHVM).
Очарование1996?Объектно-ориентированный язык компьютерного программирования, похожий на языки RTL / 2, Pascal и C, а также содержащий некоторые собственные уникальные особенности.
Клэр1994Ив КазоФункциональный и объектно-ориентированный язык программирования высокого уровня с возможностью обработки правил.
Нооп2009GoogleПопытки совместить лучшие черты «старых» и «новых» языков, при этом синтаксически поощряя хорошие практики программирования.
Неко2005Николя Каннас (Motion-Twin )Язык программирования высокого уровня с динамической типизацией
Аксум2009MicrosoftЯзык параллельного программирования для конкретной предметной области, основанный на модели акторов.
Ржавчина2010Грейдон Хоар (Mozilla )Язык, позволяющий каждому создавать надежное и эффективное программное обеспечение.
Машинопись2012MicrosoftНадмножество JavaScript.
Umple2008Университет ОттавыЯзык как для объектно-ориентированного программирования, так и для моделирования с диаграммами классов и диаграммами состояний.
TOM (объектно-ориентированный язык программирования)1990-е годы?Объектно-ориентированный язык программирования, основанный на уроках, извлеченных из Objective-C.
Телескрипт1990Марк ПоратОбъектно-ориентированный язык программирования.
Фантом2005Брайан Франк и Энди ФранкОбъектно-ориентированный, функциональный субъект, работающий одновременно с системой типов, допускающей значение NULL, с упором на прагматизм при построении корпоративных систем, работающих поверх JVM, CLR или JavaScript.
другиеnesC (произносится «NES-see») - это расширение языка программирования C, разработанное для воплощения концепций структурирования и модели выполнения TinyOS. TinyOS - это управляемая событиями операционная система, разработанная для узлов сенсорной сети с очень ограниченными ресурсами.[15]
HolyC2005Терри А. ДэвисДиалект C для собственной операционной системы Терри TempleOS. Наиболее заметными изменениями являются передача аргументов, именование типов переменных (U8 вместо unsigned char, I32 вместо int и т. Д.), Структура кода («Функция main () отсутствует. Любой код вне функций выполняется при запуске. , чтобы "[16]), структура оператора switch и замена некоторых частей препроцессора, например удаление #define и использование символа '$' в качестве escape-символа.
Зиг2015Эндрю КеллиЯзык программирования общего назначения и набор инструментов для поддержки надежного, оптимального и многоразового программного обеспечения.[17]

Рекомендации

  1. ^ а б "Семья Си". linuxfinances.info. Получено 2015-12-30.
  2. ^ "Информационная страница библиотеки S-Lang".
  3. ^ «Архивная копия» (PDF). Архивировано из оригинал (PDF) на 2016-03-05. Получено 2015-05-11.CS1 maint: заархивированная копия как заголовок (связь)
  4. ^ "Справочное руководство по языку алеф".
  5. ^ «Глава 4. Как создавался JavaScript». speakjs.com. Архивировано из оригинал на 2020-02-27. Получено 2020-06-13.
  6. ^ «Научные численные вычисления».
  7. ^ "кроссплатформенное программирование Ch Shell".
  8. ^ http://reports-archive.adm.cs.cmu.edu/anon/2010/CMU-CS-10-145.pdf
  9. ^ https://github.com/apple/swift-evolution/blob/master/proposals/0044-import-as-member.md
  10. ^ https://github.com/apple/swift-evolution/blob/master/proposals/0038-swiftpm-c-language-targets.md
  11. ^ "Project Fortress: Wiki: Home - Project Kenai". Архивировано из оригинал на 2013-01-12. Получено 2015-05-11.
  12. ^ http://cdn.oreillystatic.com/en/assets/1/event/45/Go%20Presentation.pdf
  13. ^ "NXC - не совсем C".
  14. ^ "NQC - Не совсем C".
  15. ^ GitHub - tinyos / nesc: главный репозиторий nesc., TinyOS, 05.03.2019, получено 2019-03-17
  16. ^ «Операционная система Храма». 2017-03-25. Архивировано из оригинал на 2017-03-25. Получено 2019-04-16.
  17. ^ "Язык программирования Zig".