Сборник языков программирования А-я
Сборник языков программирования А-я

Полная версия

Сборник языков программирования А-я

Язык: Русский
Год издания: 2026
Добавлена:
Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
9 из 10

183

Red (рэд, красный) — мультипарадигменный язык программирования и исполняющая среда, созданный Ненадом Ракочевичем и впервые выпущенный в 2011 году как эволюция и упрощение REBOL. Его цель — сохранить выразительность и компактность REBOL, но добавить полноценную компилируемость, статическую типизацию (опционально) и возможность создавать нативные приложения без внешних зависимостей.

Red поддерживает императивный, функциональный и реактивный стили, работает с DSL диалектами (как и REBOL), имеет встроенную графическую подсистему (View) и средства для низкоуровневой работы (Ren-C совместимый диалект для системных задач). Язык может компилироваться в нативный код или работать как интерпретатор; рантайм умещается в один небольшой исполняемый файл, что удобно для скриптов, утилит и переносимых приложений.

Экосистема включает пакетный менеджер, инструменты сборки и кросс компиляцию. Red используют для быстрых прототипов, GUI приложений, DSL и автоматизации там, где важны компактность кода и отсутствие тяжёлых зависимостей.

184

Refal (рефал, акроним от REcursive Functions Algorithmic Language/ «Алгоритмический язык рекурсивных функций») — функциональный и сентенциальный язык программирования, созданный Валентином Турчиным в 1966 году. Его главная особенность — парадигма сопоставления с образцом и переписывания термов: программа состоит из правил (предложений), каждое из которых содержит образец и шаблон; вычисление — это последовательное применение правил к входному выражению до получения результата.

Refal оперирует структурированными выражениями (термами): символами, числами, скобками, переменными разных типов (S, T, E), а вызовы функций записываются в угловых скобках. Язык изначально ориентирован на символьные преобразования: алгебраические выкладки, компиляцию, переводчики, обработку текстов и метаязыковые задачи. Известные диалекты — РЕФАЛ 2, РЕФАЛ 5, РЕФАЛ+.

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

185

Relative Expression Based Object Language (REBOL,рэбол, бунт) — компактный мультипарадигменный язык, созданный Карлом Сассенратом и выпущенный в 1997 году. Его главная идея — объединить язык программирования и формат обмена данными: в REBOL данные и код используют единый синтаксис, близкий к человеческому языку, а любая структура может одновременно быть и описанием данных, и исполняемым скриптом.

Ключевые особенности: минималистичный синтаксис без лишних скобок и ключевых слов, встроенные интернет протоколы (HTTP, FTP, SMTP и др.), графика и GUI (через диалект VID), а также концепция «диалектов» — вложенных мини языков под конкретные задачи (интерфейсы, правила, конфигурации). REBOL работает как интерпретируемый язык с небольшим рантаймом, легко переносится между платформами и изначально позиционировался как инструмент для быстрых скриптов, обмена сообщениями и создания лёгких приложений.

Хотя массового распространения язык не получил, его идеи (единый синтаксис для данных и кода, диалекты, компактность) повлияли на развитие DSL и легковесных форматов.

186

REXX (рекс, Restructured Extended eXecutor) — процедурный скриптовый язык, созданный Майком Коулишоу (Mike Cowlishaw) в IBM в 1979 году как современная замена EXEC/EXEC2 для мейнфреймов. Его философия — «человекоориентированный» язык: простой синтаксис, минимум специальных символов, принцип «наименьшего удивления» и полная свобода формата записи.

Главная особенность REXX — универсальная модель данных: все переменные хранят строки, а если строка выглядит как число, над ней можно сразу выполнять арифметику. Ещё одна сильная сторона — встроенная интеграция с хост средой: любая нераспознанная конструкция по умолчанию передаётся системе как команда, поэтому REXX часто использовали как «клей» для автоматизации и макросов (например, в XEDIT, ISPF, OS/2). Язык поддерживает ассоциативные массивы через составные переменные (например, data.key), не требует объявления типов и имеет удобные средства отладки (трассировка, изменение переменных на лету).

Диалекты: классический REXX, Object REXX (с ООП), NetREXX (для JVM). Сегодня REXX остаётся стандартом на платформах IBM (z/OS, IBM i) и ценен для поддержки легаси автоматизации.

187

Ring (ринг) — мультипарадигменный язык программирования общего назначения, созданный Махмудом Саманом (Mahmoud Samhan) и впервые выпущенный в 2016 году. Он сочетает императивный, процедурный, объектно ориентированный, функциональный и декларативный стили, а позиционируется как простой для новичков и одновременно достаточно мощный для реальных проектов.

Синтаксис Ring намеренно сделан близким к естественному языку: много конструкций читаются почти как английский текст, при этом поддерживается привычный C подобный стиль. Язык динамически типизирован, поставляется с богатой стандартной библиотекой и встроенными DSL для GUI (RingQt, RingGUI), веб разработки, игр и скриптов. Ring компилируется в байт код и исполняется собственным VM; есть возможность создавать нативные приложения и встраивать Ring в другие системы.

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

188

Ruby (руби, рюби) — высокоуровневый мультипарадигменный язык программирования, созданный Юкихиро Мацумото и выпущенный в 1995 году. Его философия строится вокруг удобства разработчика: принцип «наименьшей неожиданности», выразительный синтаксис, близкий к естественному языку, и идея «делать программистов счастливыми». Ruby — полностью объектно ориентированный язык: даже базовые типы вроде чисел и строк — это объекты, а операции над ними реализуются как вызовы методов.

Ключевые особенности: динамическая типизация, гибкая система блоков и замыканий, мощная метапрограммировка, удобные итераторы и обработка исключений. Синтаксис позволяет выражать одни и те же идеи несколькими способами, давая разработчику свободу стиля. Экосистема построена вокруг «гемов» (gems) — пакетов, распространяемых через RubyGems; управление зависимостями осуществляется инструментом Bundler.

Главная ниша Ruby — веб разработка, прежде всего благодаря фреймворку Ruby on Rails(2004), который популяризировал подход «соглашения вместо конфигурации» и ускорил создание приложений. На Ruby также пишут скрипты автоматизации, инструменты DevOps (Chef, Vagrant), генераторы статических сайтов (Jekyll) и прототипы. Язык ценят за скорость вывода продукта и читаемость кода, хотя по производительности он уступает компилируемым языкам.

189

Rust (раст, руст) — мультипарадигменный язык программирования общего назначения, созданный Грейдоном Хоаром в Mozilla и впервые выпущенный в 2010 году. Его главная цель — совместить производительность C/C++ с безопасностью памяти без сборщика мусора: это достигается за счёт модели владения (ownership), правил заимствования (borrowing) и времени жизни (lifetimes), которые проверяются на этапе компиляции.

Rust поддерживает императивный, функциональный и объектно ориентированный стили, имеет статическую типизацию и мощную систему типов с алгебраическими типами данных, pattern matching и макросами. Компилятор Rust славится «заботливыми» сообщениями об ошибках: он не просто указывает на проблему, но часто подсказывает, как её исправить. Экосистема строится вокруг менеджера пакетов и сборщика Cargo, который управляет зависимостями, сборкой, тестами и документацией.

Ключевые ниши Rust — системное программирование (операционные системы, драйверы, ядра), высоконагруженные сетевые сервисы, встраиваемые системы, блокчейн и WebAssembly. На нём частично написан движок Firefox (Quantum), разрабатываются компоненты Windows, ядра ОС (Redox, Tock), серверные платформы и инструменты сборки. Язык активно используют Microsoft, Dropbox, Coursera и другие крупные компании.

Важная особенность — совместимость с C: Rust может вызывать C код и экспортировать свои функции как C совместимые. Благодаря этому его удобно внедрять в легаси проекты.

S

190

S (эс) — язык программирования для статистического анализа и визуализации данных, созданный в Bell Labs в 1976 году (ключевой разработчик — Джон Чэмберс). Он стал основой для целой экосистемы статистических инструментов и напрямую повлиял на появление языка R: R задумывался как свободная реализация идей S в рамках проекта GNU.

S — интерактивный, интерпретируемый язык с векторной моделью вычислений: операции применяются сразу к целым массивам, а не к отдельным элементам. В нём развита объектно ориентированная система (в частности, обобщённые функции и классы S3/S4), удобная работа с табличными данными (data frames) и мощная графическая подсистема для быстрой визуализации результатов.

Основные реализации: оригинальный S, коммерческий S Plus (от MathSoft/Insightful). Язык активно использовался в академической и промышленной статистике, биостатистике, эконометрике. Сегодня S сам по себе почти не применяется, но его синтаксис, семантика и подходы к анализу данных стали стандартом де факто в статистическом программировании благодаря наследию в R.

191

S-Lang (эс-лэнг, с-лэнг, слэнг) — мультиплатформенная библиотека и встраиваемый скриптовый язык (с собственным интерпретатором), созданный Джоном Дэвисом (John E. Davis) и впервые выпущенный в начале 1990 х. Его ключевая ниша — добавление скриптовой расширяемости в консольные и интерактивные приложения: S-Lang часто используют как «движок» для макросов и кастомизации в редакторах, терминальных интерфейсах и утилитах.

Язык имеет C подобный синтаксис, поддерживает массивы, ассоциативные массивы (хэши), пользовательские структуры и мощные операции над массивами (вплоть до фильтрации и векторных вычислений). Важная особенность — тесная интеграция с C: S-Lang умеет работать со всеми нативными C типами (включая signed/unsigned и complex), а его интерпретатор легко встраивается в C/C++ проекты. В дистрибутив входит оболочка slsh для автономного использования.

S-Lang применяется в таких проектах, как редактор JED, консольные интерфейсы и утилиты Linux; он ценится за компактность, скорость и удобство встраивания.

192

SA-C (Single Assignment C) — функциональный язык программирования массивной обработки данных, основанный на синтаксисе C, но с семантикой однократного присваивания: каждая переменная получает значение ровно один раз. Разработан исследовательской группой Университета имени Христиана Альбрехта в Киле; первые версии появились в 1994 году.

Главная цель SA C — позволить писать высокоуровневые, архитектурно независимые программы для интенсивных численных и сигнальных вычислений, а компилятору — автоматически извлекать параллелизм и эффективно отображать код на разные платформы: многоядерные CPU, GPU и FPGA. Язык ориентирован на многомерные массивы и операции над ними; поддерживает shape polymorphic программирование — алгоритмы работают с массивами произвольной размерности без явных циклов.

Основные ниши — обработка изображений, сигналов, компьютерное зрение, научные вычисления и генерация аппаратных конфигураций для FPGA. Компилятор SA C способен порождать оптимизированный C код, VHDL и конфигурации для ПЛИС.

193

Scala (скала, Scalable Language) — мультипарадигменный статически типизированный язык программирования, созданный Мартином Одерски и впервые выпущенный в 2004 году в EPFL (Швейцария). Его ключевая идея — объединить лучшие черты объектно ориентированного и функционального подходов, а также обеспечить масштабируемость: одни и те же абстракции должны работать и для крошечных скриптов, и для огромных распределённых систем.

Scala полностью совместим с Java: он работает на JVM, свободно использует Java библиотеки и может напрямую вызывать Java код. При этом Scala предлагает более выразительный синтаксис: функции — это значения, есть мощные механизмы абстракций (типажи, представления, вложенные конструкции), сопоставление с образцом, неизменяемые структуры данных и лаконичные лямбда выражения. Важная особенность — автовывод типов: многие типы компилятор определяет сам, сокращая шаблонный код.

Основные ниши Scala — высокопроизводительные веб сервисы (фреймворки Play, Akka), обработка больших данных (Apache Spark, Apache Flink), распределённые и асинхронные системы, где важны типобезопасность и декларативный стиль. Язык активно применяют в крупных проектах (Twitter, Coursera, LinkedIn) для построения отказоустойчивых, конкурентных приложений. Экосистема включает инструменты сборки (sbt), пакетный менеджер и средства тестирования.

194

Scheme (ским, схем, скимэ, шим) — минималистичный диалект Lisp, созданный в 1975 году Гаем Стилом и Джеральдом Сассманом в MIT. Его философия строится на простоте и выразительности: язык намеренно содержит минимум примитивов, а всё остальное можно построить поверх них. Scheme базируется на лямбда исчислении, использует префиксную нотацию и S выражения; базовые структуры данных — списки и векторы.

Ключевые особенности: статическая лексическая область видимости (в отличие от ранних диалектов Лиспа), обязательная оптимизация хвостовых вызовов, продолжения как объекты первого класса (через call-with-current-continuation) и «гигиенические» макросы, позволяющие безопасно расширять синтаксис. Scheme — динамически типизированный, интерпретируемый или компилируемый язык со сборкой мусора.

Исторически Scheme стал языком фундаментального образования в программировании: он широко известен по классическому учебнику «Структура и интерпретация компьютерных программ» (SICP), долгие годы служившему основой курса CS в MIT. Сегодня его используют и в обучении, и в практике: например, GNU Guile — встраиваемая реализация Scheme для скриптинга в проектах GNU, а Racket (развившийся из PLT Scheme) — как платформа для создания предметно ориентированных языков и образовательных сред.

Стандартизация идёт через серию отчётов RnRS (R5RS, R6RS, R7RS); экосистема включает множество реализаций (MIT Scheme, Gambit, Chicken, Chez Scheme и др.) и библиотеки через SRFI.

195

Scratch (скпетч, скрэтч) — визуальный язык программирования и среда для обучения основам кодинга, разработанный в 2007 году в лаборатории Lifelong Kindergarten MIT под руководством Митчела Резника. Его главная идея — сделать программирование доступным и увлекательным: код здесь не пишут, а собирают из цветных блоков, напоминающих детали конструктора.

Программы в Scratch строятся вокруг спрайтов (персонажей) и сцены: блоки отвечают за движение, внешний вид, звук, события, управление и переменные. Язык поддерживает базовые концепции программирования — циклы, условия, переменные, сообщения между объектами — но без синтаксических ошибок: блоки просто не соединяются неправильно. В Scratch есть встроенный редактор спрайтов и фонов, а проекты можно публиковать и обсуждать в большом международном сообществе.

Основная ниша — обучение детей (обычно 8–16 лет) алгоритмическому мышлению и первым шагам в IT; Scratch используют в школах и кружках по всему миру. При этом на нём создают вполне содержательные проекты: игры, анимации, интерактивные истории. Среда бесплатна, доступна онлайн и в офлайн версии, переведена на множество языков, включая русский.

196

Seed7 (сид севен, сид семь) — мультипарадигменный язык программирования общего назначения, созданный Томасом Мертесом и впервые представленный в 2005 году. Его главная особенность — расширяемость: синтаксис языка не жёстко «зашит» в компилятор, а описан в библиотеках, поэтому программист может сам определять новые операторы, конструкции и даже целые мини языки прямо в коде.

Seed7 сочетает черты Паскаля, Ады и C: статическая типизация, строгая проверка типов без автоматических приведений, интерфейсы вместо классической модели классов, а также типы как объекты первого класса (удобно для шаблонов и обобщений). В языке есть типы с неограниченной точностью (bigInteger, bigRational), обработка исключений (в том числе переполнение целых), автоматическое управление памятью без сборщика мусора. Компилятор Seed7 генерирует код на C, который затем компилируется в нативный бинарный файл — это даёт кроссплатформенность.

Ниша Seed7 — эксперименты с синтаксисом, DSL, образовательные проекты и задачи, где важна строгая типизация и возможность «собрать свой язык» поверх базового ядра.

197

Self (селф, сэлф) — объектно ориентированный язык программирования, разработанный в Xerox PARC в 1986 году (ключевые авторы — Дэвид Анхель и Рэндалл Смит). Его главная идея — чистая прототипная модель: в Self нет классов, объекты создаются путём клонирования и изменения существующих прототипов, а наследование идёт напрямую от объекта к объекту.

Self сочетает динамическую типизацию с агрессивной оптимизацией: оригинальная реализация использовала технику динамической компиляции и адаптивной оптимизации, чтобы приблизить производительность к уровню статически типизированных языков. В языке поддерживаются лёгкие потоки (coroutines) и гибкая система объектов с изменяемой структурой.

Self оказал большое влияние на индустрию: идеи прототипного программирования легли в основу JavaScript, а техники JIT компиляции и оптимизации повлияли на разработку виртуальных машин для Java (JVM) и других языков. Сегодня Self в основном используется как исследовательский и образовательный инструмент, но его архитектурные решения остаются важной вехой в эволюции ООП.

198

Simula (симула, Simula 67 ) — первый в истории язык с полноценной поддержкой объектно ориентированного программирования. Его создали Оле Йохан Даль и Кристен Нюгорд в Норвежском вычислительном центре: первая версия появилась в 1965 году, а Simula 67 — в 1967. Название отражает изначальную цель — имитационное моделирование сложных систем.

В Simula впервые системно реализовали ключевые идеи ООП: классы, объекты, наследование и виртуальные методы. Язык базируется на Algol 60 и сохраняет его структурную основу, но дополняет её объектной моделью и средствами описания процессов — это позволяло моделировать параллельные и событийные системы (очереди, трафик, производственные линии). Программы оперируют объектами, «живущими» и взаимодействующими во времени.

Хотя Simula не стал массовым, его концепции легли в основу Smalltalk, C++, Java и других ООП языков. Сегодня он в основном служит историческим и учебным примером становления объектного подхода и техники имитационного моделирования.

199

Smalltalk (смолток, смелтелк, смэлтэлк) — чистый объектно ориентированный язык программирования с динамической типизацией, созданный в Xerox PARC в 1970 х годах под руководством Алана Кэя (ключевые участники — Адель Голдберг, Дэн Ингаллс и др.). Первая версия (Smalltalk 72) появилась в 1972 году, а канонической считается Smalltalk 80 — именно она стала основой для всех современных реализаций.

Главная идея Smalltalk: «всё — объект», включая числа, строки, классы и даже саму среду разработки; взаимодействие объектов происходит через отправку сообщений. В языке практически нет «синтаксических» конструкций вроде if или for: даже условные ветвления и циклы реализованы как сообщения объектам (например, true ifTrue: [...]). Такой подход делает Smalltalk предельно единообразным и рефлексивным: система может изменять саму себя во время выполнения.

Smalltalk был первым языком с полноценной интегрированной графической средой разработки(браузер классов, отладчик, инспектор объектов) и идеей «живого программирования»(редактирование кода на лету без перезапуска). Эти концепции сильно повлияли на современные IDE и практики быстрой итеративной разработки.

Сегодня Smalltalk не массовый, но активно развивается в нишах: обучение ООП и архитектуре систем, прототипирование, корпоративные приложения. Современные реализации — Pharo, Squeak, VisualWorks, GNU Smalltalk. Влияние Smalltalk прослеживается в Java, Ruby, Objective C, в подходах к рефакторингу, паттернам проектирования и экстремальному программированию.

200

Snobol (снобол) чаще всего речь идёт о версии SNOBOL4 — язык программирования для обработки строк и символьных данных, разработанный в Bell Labs в 1962–1967 годах (Ральф Грисвольд, Иван Полонский, Дэвид Фарбер). Его главная сила — мощная система сопоставления с образцом: шаблоны в Snobol не просто проверяют строки, а активно разбирают и преобразуют их, извлекая подстроки прямо в переменные.

В языке доминируют строковые операции и паттерн матчинг: ключевые конструкции вроде SPAN, BREAK, ARB и метки с переходами на случай неудачи (:F(LABEL)) позволяют строить сложные правила разбора текста. Всё в Snobol динамическое: типы, память, даже точки входа в процедуры. Язык активно применяли в 1970 х для анализа формул, биоинформатики, лингвистики, компиляторостроения и любых задач, где нужно «вытащить» структуру из текста.

Из Snobol вырос язык Icon(изначально как надстройка, потом самостоятельный проект) — он сохранил мощь работы с текстом, но сделал синтаксис удобнее. Сегодня Snobol в основном исторический и учебный язык, но его идеи паттернов и «активного» сопоставления до сих пор влияют на текстовые процессоры и DSL для разбора данных.

201

SPARK (спарк) — язык и технология для разработки высоконадёжного и безопасного ПО, основанная на подмножестве Ada. Современная версия (SPARK 2014) развивается как надстройка над Ada 2012: код SPARK — это корректный Ada код, но с дополнительными ограничениями и аннотациями, позволяющими доказывать свойства программы формально.

Главная цель SPARK — минимизировать ошибки времени выполнения и гарантировать критически важные свойства (отсутствие переполнений, исключений, взаимных блокировок и т. п.) с помощью статического анализа и формальной верификации. Для этого используют инструменты вроде GNATprove: они автоматически выводят доказательства корректности или выдают контрпримеры.

Ключевые ниши — авиация, космос, железнодорожный транспорт, ядерная энергетика, кибербезопасность: там, где цена ошибки очень высока. SPARK применяют в проектах DO 178C (бортовое ПО), EN 50128 (железнодорожные системы) и других стандартах сертификации.

202

SPL (Statistical Programming Language, иногда как Stored Procedure Language) — это не один универсальный язык, а несколько разных технологий с одинаковой аббревиатурой. Для каталога важно разделять контексты:

SPL в статистике— язык для статистического анализа (встречается в некоторых пакетах и средах; исторически связан с обработкой данных и построением моделей).

SPL как Stored Procedure Language— диалект для хранимых процедур в СУБД (например, в Informix, Teradata и др.): позволяет писать логику прямо внутри базы, управлять транзакциями, курсорами и сложными вычислениями.

SPL в обработке потоков— в ряде систем аббревиатура используется для описания потоковых преобразований (stream processing language).

Чаще всего в IT каталогах SPL указывают именно как язык хранимых процедур: императивный, с типизацией, циклами, условиями и обработкой ошибок на уровне БД. Ниша — бизнес логика в базе данных, снижение сетевой нагрузки, централизованное управление данными.

203

SQL (Structured Query Language, изначально SEQUEL - Structured English Query Language) — декларативный язык структурированных запросов для работы с реляционными базами данных. Появился в 1970 х годах (первоначальная версия SEQUEL от IBM), стал стандартом индустрии и регулируется спецификациями ISO/IEC.

SQL не описывает, какполучить данные, а говорит, чтонужно получить: пользователь формулирует запрос (например, SELECT), а СУБД сама выбирает оптимальный план выполнения. Основные задачи: извлечение (SELECT), вставка (INSERT), обновление (UPDATE) и удаление (DELETE) данных, а также управление структурой (DDL: CREATE, ALTER, DROP) и правами доступа (DCL). Важные концепции — таблицы, строки и столбцы, первичные и внешние ключи, JOIN соединения, агрегации и транзакции с ACID гарантиями.

Используется повсеместно: в веб разработке, аналитике, отчётности, BI системах и бэкенд сервисах. Поддерживается всеми основными СУБД (PostgreSQL, MySQL, Oracle, SQL Server, SQLite и др.).

204

Squirrel (скуирл, скьюрэл, скверл) — лёгкий императивный скриптовый язык с синтаксисом, похожим на C/C++/Java, созданный Альберто Демичем в 2003 году. Его главная ниша — встраивание в игры и приложения как язык сценариев: он компактный, быстрый, рассчитан на работу в средах с ограниченными ресурсами.

На страницу:
9 из 10