к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

Классификация языков программирования

Существует множество критериев, по которым можно классифицировать языки программирования. Частые варианты классификации включают:

Чёткой классификации не существует, по той простой причине, что существуют буквально тысячи ЯП, и в любой категории классификации обнаруживается практически непрерывный спектр.

По системе типов

Наиболее категоричное разделение ЯП по системе типов на типизированные и нетипизированные.

Нетипизированные языки позволяют производить любую возможную операцию над любыми данными. Это обычно какие-либо языки ассемблера, которые работают непосредственно с двоичным представлением данных в памяти.

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

Типизированные языки определяют типы данных, с которыми работает любая операция. Например, операция деления работает над числами – для строк эта операция не определена.

Типизированные языки, в свою очередь, могут классифицироваться по моменту проверки типов и по строгости этой проверки.

По моменту проверки типов ЯП делятся на статически и динамически типизированные (или просто, статические и динамические).

Статически типизированные языки

При статической типизации, типы всех выражений точно определены до выполнения программы, и обычно проверяются при компиляции. Языки со статической типизацией, в свою очередь могут быть явно типизированными (manifestly typed) или типовыводящими (type-inferred).

Явно типизированные языки

требуют явного указания типов. К ним относятся, например, C, C++, C#, Java.

определяют (выводят) типы большинства выражений автоматически, и требуют явного аннотирования только в сложных и неоднозначных случаях. К ним относятся, например, Haskell и OCaml.

Надо заметить, что многие явно типизированные языки умеют выводить типы в некоторых случаях (например, auto в С++11), поэтому чёткую грань здесь провести можно не всегда.

Динамически типизированные языки

производят проверку типов на этапе выполнения. Иначе говоря, типы связаны со значением при выполнении, а не с текстовым выражением. Как и типовыводящие языки, динамически типизированные не требуют указания типов выражений. Помимо прочего, это позволяет одной переменной иметь значения разных типов в разные моменты исполнения программы. Однако, ошибки типов не могут быть автоматически обнаружены, пока фрагмент кода не будет выполнен. Это усложняет отладку и несколько подрывает идею типобезопасности в целом. Примерами динамически типизированных языков являются Lisp, Perl, Python, JavaScript и Ruby.

По строгости типизации языки делятся на сильно и слабо типизированные.

Слабо типизированные языки

неявно конвертируют один тип в другой, скажем, строки в числа и наоборот. Это может быть удобно в некоторых случаях, однако многие программные ошибки могут быть пропущены. Усложняется отладка.

Сильно типизированные языки

не позволяют неявную конверсию, и требуют явной. Дают сильные гарантии типобезопасности, но код может становиться крайне многословным.

В целом, чёткую грань провести оказывается опять-таки достаточно сложно, поскольку неявное преобразование типов в той или иной мере производится в большинстве языков. Однозначно к слабо типизированным относят Perl, JavaScript и C (в силу свободной конверсии void* ). К сильно типизированным относят C++, Java, Haskell, и другие.

По уровню абстракции

Классификация по уровню абстракции сильно зависит от современных представлений о “высоком уровне абстракции”.

Языки по-настоящему низкого уровня – это машинный код и языки ассемблера, все остальные – в некотором смысле языки высокого уровня. Тем не менее, многие сейчас считают C и C++ языками низкого уровня.

Java, Python, Ruby и т.п. сейчас общепринято считаются языками высокого уровня.

Языки высокого уровня могут значительно упрощать реализацию сложных алгоритмов, однако, написанные на них программы потенциально менее производительны (абстракция не бесплатна).

По модели исполнения

ЯП может быть компилируемым, транс-компилируемым или интерпретируемым.

Интерпретируемые языки исполняются непосредственно, без этапа компиляции. Программа, называемая интерпретатором, читает каждое выражение, определяет сообразное действие, и совершает его. Гибридный вариант может генерировать машинный код “на лету” и исполнять его.

Интерпретируемые языки: PHP, Perl, Bash, Python, JavaScript

Компилируемый язык компилируется, т.е. переводится в исполнимую форму до выполнения.

Компиляция может производиться непосредственно в машинный код, или в какое-либо промежуточное представление (байт-код), которое потом интерпретируется виртуальной машиной.

Компилируемые языки (машинный код): С, С++, Algol, Fortran, Haskell Компилируемые языки (байт-код): Python, Java

Транс-компилируемые языки – это языки, которые для компиляции или выполнения транслируются в другой язык. Частой целью для транс-компилируемых языков является C. Также последнее время популярной целью является JavaScript (как единственный язык, исполняемый в браузере).

Транс-компилируемые языки: C++ (исторически, в C), Haskell (исторически, в С), Fortran (иногда, в С), Fay (в JavaScript)

Линии сильно размыты, поскольку существуют компиляторы для традиционно интерпретируемых языков, и, напротив, интерпретаторы для традиционно компилируемых.

Классификация по “поколению”

Поколение – несколько условная характеристика, которая в значительной мере связана с историей появления современных языков программирования.

Языки первого поколения

1GL – это машинные языки. Исторически, программы на этих языках вводились при помощи переключателей на передней панели ЭВМ, либо “писались” на перфокартах и позже перфолентах. Программа на 1GL состоит из 0 и 1 и сильно привязана к конкретному железу, на котором она должна исполняться.

Языки второго поколения

Это общая категория для различных языков языков ассемблера. С одной стороны, код языков 2GL может читать человек, и он должен быть конвертирован в машино-читаемую форму (этот процесс называется ассемблированием, или сборкой). С другой стороны, этот язык специфичен к процессору и прочему аппаратному окружению.

Языки третьего поколения

Более абстрактные, чем 2GL, это языки, которые перекладывают заботу о непринципиальных деталях с плеч программиста на плечи компьютера. Fortran, ALGOL и COBOL являются первыми 2GL. C, C++, Java, BASIC и Pascal так же могут быть отнесены к 3GL, хотя в общем 3GL подразумевает только структурную парадигму (в то время как C++, Java работают в том числе в ООП)

Языки четвертого поколения

Определение несколько расплывчато, однако в целом сводится к еще более высокому уровню абстракции, чем 3GL. Однако, подобный уровень абстракции часто требует сужения области применения. Так, например, FoxPro, LabView G, SQL, Simulink являются 4GL, однако находят применение в узкой специфической области. Некоторые исследователи считают, что 4GL являются подмножеством DSL (domain specific language, язык, специфичный к области).

Языки пятого поколения

В конце 80-х – начале 90-х была попытка разработать класс языков, которые “пишут программы сами”. По идее, программист должен был описывать как программа должна себя вести, а остальное должен был делать компьютер. К примерам можно отнести Prolog, OPS5, Mercury. Хотя эти языки остаются интересными с теоретической точки зрения, широкого практического применения они не нашли.

Парадигмы программирования

к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть картинку к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Картинка про к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

Определение

Вообще строгого определения нет, но по сути “парадигма программирования” определяет стиль написания исходного кода программ.

В некоторой степени “стиль” диктует так же способ формализации алгоритмов.

Императивное программирование

Императивное программирование характеризуется в основном:

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

Практически всё аппаратное обеспечение в основе своей императивное.

Неструктурное программирование

Характерно для наиболее ранних языков программирования.

В основном характеризуется:

Характерной особенностью неструктурного программирования является сложность реализации рекурсии.

Структурное программирование

В отличие от неструктурного программирования, характеризуется:

Концепция структурного программирования основана на теореме Бёма-Якопини:

Любая вычислимая функция может быть представлена комбинацией трёх управляющих структур:

Последовательность – это выполнение сначала одной подпрограммы, затем другой.

Ветвление – это выполнение либо одной, либо другой подпрограммы в зависимости от значения некого булева (логического) выражения.

Итерация – это многократное выполнение подпрограммы пока некое булево выражение истинно.

Процедурное программирование

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

Основная идея заключается в том, чтобы сделать подпрограммы более модульными за счёт:

Оба этих пункта реализуются за счёт использования стека вызовов.

Объектно-ориентированное программирование

Объектно-ориентированное программирование основано на концепции “объекта”.

Объекты могут содержать данные (поля, свойства, аттрибуты) и поведение (код, процедуры, методы).

Наиболее популярной формой ООП является ООП на основе классов. В данном подходе, все объекты являются экземплярами классов, и классы определяют так же тип объектов.

Одной из альтернатив является прототипное наследование. Прототипное наследование не использует классов. Вместо этого, одни объекты могут быть объявлены “прототипами” других объектов – при этом методы и поля прототипа становятся доступны как методы и поля нового объекта (если, конечно, новый объект их не переопределяет)

Декларативное программирование

Декларативное программирование — это парадигма программирования, в которой задаётся спецификация решения задачи, то есть описывается, что представляет собой проблема и ожидаемый результат. Противоположностью декларативного является императивное программирование, описывающее на том или ином уровне детализации, как решить задачу и представить результат.

Как следствие, декларативные программы не используют понятия состояния, то есть не содержат переменных и операторов присваивания.

К подвидам декларативного программирования также зачастую относят функциональное и логическое программирование — несмотря на то, что программы на таких языках нередко содержат алгоритмические составляющие.

“Чисто декларативные” компьютерные языки зачастую не полны по Тьюрингу — примерами служат SQL и HTML — так как теоретически не всегда возможно порождение исполняемого кода по декларативному описанию. Это иногда приводит к спорам о корректности термина “декларативное программирование”.

Функциональное программирование

Основано на лямбда-исчислении

Аппликативное

Аппликативное программирование — один из видов декларативного программирования, в котором написание программы состоит в систематическом осуществлении применения одного объекта к другому. Результатом такого применения вновь является объект, который может участвовать в применениях как в роли функции, так и в роли аргумента и так далее. Это делает запись программы математически ясной. Тот факт, что функция обозначается выражением, свидетельствует о возможности использования значений-функций — функциональных объектов — на равных правах с прочими объектами, которые можно передавать как аргументы, либо возвращать как результат вычисления других функций.

Комбинаторное

Комбинаторное программирование (англ. function-level programming) — парадигма программирования, использующая принципы комбинаторной логики.

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

На практике это выливается в отсутствие “переменных”, содержащих данные.

Логическое программирование

Логическое программирование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.

Самым известным языком логического программирования является Prolog.

Источник

Языки программирования высокого уровня

Вы будете перенаправлены на Автор24

Понятие высокоуровневых языков программирования

Высокоуровневые языки появились сравнительно поздно, в 1970-х гг., т.е. примерно через 20 лет после появления компьютеров с современной архитектурой. Создание таких языков было обусловлено стремлением избавить программистов от трат времени и умственных усилий на рутинные операции, связанные с учетом особенностей тех или иных компьютерных архитектур.

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

Традиционные языки программирования

За последние десятилетия сложился устойчивый круг эффективных ЯП, удерживающих лидирующие позиции в рейтингах популярности.

Языки с Си-подобным синтаксисом

Рисунок 1. Деннис Ритчи и фрагмент кода на языке Си. Автор24 — интернет-биржа студенческих работ

Язык Си, появившийся на рубеже 1960-1970-х гг. и ставший одним из наиболее востребованных за всю историю развития компьютерных технологий, дал толчок формированию большого количества языков, развивающих заложенные в нем идеи:

Готовые работы на аналогичную тему

К семейству Си-подобных языков относятся и другие средства разработки: PHP, Perl, Bash и др.

Python

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

Рисунок 2. Логотип Python-foundation. Автор24 — интернет-биржа студенческих работ

Haskell

Haskell — популярный универсальный язык, ориентированный на функциональное программирование. Его сильной стороной является полноценная поддержка т.н. отложенных вычислений.

Erlang

Erlang — язык программирования функционального типа, направленный на создание распределённых вычислительных систем. Развивается усилиями корпорации Ericsson.

Новые языки программирования

Развитие языков программирования активно продолжается в связи с бурным ростом вычислительных возможностей современной техники. В последние годы появилось несколько языков, уверенно отвоевывающих популярность у традиционных средств разработки. Перечислим некоторые из них.

Рисунок 3. Популярность новых языков программирования. Автор24 — интернет-биржа студенческих работ

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

Rust

Развиваемый организацией Mozilla Foundation язык Rust позиционируется как низкоуровневый, однако код, написанный на нем считается безопасным, т.е. можно сказать, что Rust преодолевает один из главных недостатков низкоуровневых языков. Приоритетными в развитии Rust считаются эргономика, скорость и безопасность.

Swift

Kotlin

Kotlin – язык, созданный на платформе Java. Он всё чаще используется для написания мобильных приложений, работающих в среде ОС Android. Kotlin обладает более низким порогом вхождения по сравнению с Java, при этом он полностью поддерживается в привычной для разработчиков мобильных программ IDE Android Studio. Вполне вероятно, что Kotlin может со временем стать основным языком разработки для этого класса мобильных устройств.

Приятно отметить, что язык Kotlin создан российскими разработчиками и назван в честь острова, расположенного близ Санкт-Петербурга.

Источник

Сверхвысокоуровневый язык программирования

Так, разработчики Icon (и его диалекта Unicon (англ.) русск. ) описывают его как VHLL. К языкам сверхвысокого уровня также часто относят такие современные сценарные и декларативные (в частности функциональные) языки как Python, Ruby и Haskell, а также Perl и предшествовавший ему мини-язык AWK.

Большой класс языков сверхвысокого уровня — это языки используемые для специфических приложений и задач (то есть предметно-ориентированные). В связи с этой ограниченностью они могут использовать синтаксис, который никогда не используется в других языках программирования, например, непосредственно синтаксис английского языка. Примером VHLL, распознающего синтаксис английского языка, может служить язык компилятора текстовых квестов Inform версии 7.

См. также

Ссылки по теме

к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть картинку к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Картинка про к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

Ссылки

Полезное

Смотреть что такое «Сверхвысокоуровневый язык программирования» в других словарях:

Язык программирования сверхвысокого уровня — Сверхвысокоуровневый язык программирования (язык программирования сверхвысокого уровня, VHLL very high level programming language) язык программирования с очень высоким уровнем абстракции. Термин впервые появился в середине 1990 х годов для… … Википедия

Язык программирования высокого уровня — Высокоуровневый язык программирования язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков это абстракция, то есть введение смысловых конструкций, кратко описывающих такие … Википедия

Высокоуровневый язык программирования — Высокоуровневый язык программирования язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков это абстракция, то есть введение смысловых конструкций, кратко… … Википедия

Icon (язык программирования) — У этого термина существуют и другие значения, см. Icon (значения). Icon Семантика: мультипарадигменный: императивный, логический … Википедия

ЯВУ — Высокоуровневый язык программирования язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков это абстракция, то есть введение смысловых конструкций, кратко описывающих такие … Википедия

ЯПВУ — Высокоуровневый язык программирования язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков это абстракция, то есть введение смысловых конструкций, кратко описывающих такие … Википедия

DuAL — Семантика: Предметно ориентированный язык программирования Появился в: 2004 Автор(ы): Тимченко Максим Типизация данных: динамическая Испытал влияние … Википедия

Алиса (ПО) — У этого термина существуют и другие значения, см. Алиса. Alice Базовая анимация конькобежца … Википедия

Источник

Cat, Mouse и Brainfuck: сколько языков программирования существует в мире

Мы задались вопросом, сколько языков программирования есть в мире и чем они отличаются друг от друга. Даем развернутый ответ.

к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть картинку к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Картинка про к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть картинку к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Картинка про к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

Язык программирования — это система семантических, лексических и синтаксических правил, придуманная человеком для написания программ, которые выполняет компьютер.

С начала существования первых вычислительных машин человечество придумало более 8 тысяч языков программирования. Почему так много? Они создавались в разных странах и разными компаниями для решения отличающихся задач. Некоторые разработчики пишут собственные формальные языки и интерпретаторы ради эксперимента или практики. Поэтому сколько языков программирования в мире, точно сказать невозможно: новые могут появляться в ту самую секунду, когда вы читаете этот текст.

к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть картинку к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Картинка про к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

В информатике есть множество классификаций. Они могут быть основаны на технических свойствах, ярко выраженных особенностях или субъективном взгляде составителя. Единого мнения нет, но мы все же рассмотрим, какие существуют виды языков программирования и как они связаны между собой.

Низкоуровневые и высокоуровневые

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

к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть картинку к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Картинка про к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

Усложнение программ привело к тому, что люди уже не могли эффективно писать их на устаревшем языке ассемблера. В 1970-е годы разработчики создали первый высокоуровневый язык, многим известный Fortran, который используется и сейчас — в основном в научных разработках и вычислениях. В третьем и четвертом поколениях оформилось структурное программирование и появились функциональные языки: это, например, C, Pascal, Lisp, Scala, Erlang, F#, Haskell и другие.

Сегодня говорят уже о сверхвысокоуровневых языках, для которых характерен еще больший градус абстракции, чем в предыдущих. К этой группе относят Python, Ruby, Haskell, Perl.

Интерпретируемые и компилируемые

к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть картинку к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Картинка про к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

Интерпретация — это выполнение кода непосредственно и построчно, то есть команда за командой. В этом случае программа не может быть запущена без интерпретатора. К языкам такого типа относятся PHP, JavaScript, Python, Lava, MATLAB, Perl и другие.

к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть картинку к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Картинка про к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

Преимущество и главное отличие интерпретатора от компилятора в том, что разработчик может изменить код программы на сервере, и это сразу будет применено при запросе к нему. Программисту компилируемого языка нужно после внесения изменений перекомпилировать код и отправить полученный файл на сервер.

Со статической и динамической типизацией

Еще один вариант классификации — по мощности и строгости типов того или иного языка. Динамическая типизация означает, что переменная получает свой тип не при ее объявлении, а в момент присвоения ей значения. Динамически типизированные языки — это PHP, JavaScript, Ruby, Python, Objective-C, Lisp, Perl, Erlang, Visual Basic, Smalltalk.

Статическая типизация — противоположный прием: переменная получает свой тип при ее объявлении, и он не может быть изменен позже. Примеры статически типизированных языков: Java, Pascal, C++, C#, Ada.

Эзотерические языки

Их еще называют игрушечными — это языки, которые разработали «for fun», но вместе с тем они исследуют возможности программирования, пародируя существующие «серьезные» технологии и становясь их абсурдной реализацией.

Некоторые из них созданы на основе литературного синтаксиса, например, шекспировских пьес, кулинарных рецептов, японских стихотворений хайку. И даже на основе вымышленной инопланетной логики клингонов из сериала “Star Trek” — язык Var’Aq.

Один из широко известных эзотерических языков — Brainfuck («вынос мозга»), созданный в 1993 году Урбаном Мюллером. В нем всего восемь команд, и каждая записывается одним символом. Несмотря на свой минимализм, Brainfuck обладает тьюринг-полнотой — то есть на нем определенно можно реализовать любую вычислимую функцию. Следуя его концепции, многие разработчики написали свой игрушечный язык наподобие Brainfuck.

к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Смотреть картинку к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Картинка про к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog. Фото к какой группе языков программирования относятся такие языки как ruby и haskell perl prolog

Специальные языки

Их создавали для решения каких-то очень узких специфических задач. Например, язык Mouse был разработан для управления цифровыми и аналоговыми устройствами в электронной музыкальной студии. Его элементы состоят из единичных символов, и в нем всего 26 переменных, ограниченных буквами латинского алфавита от A до Z. Вот пример небольшой программы на нем:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *