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

Лекция 5.3. Программирование

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

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

С помощью языка программирования создается не готовая программа, а только ее текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо этот текст либо автоматически перевести в машинный код (для этого служат программы — компиляторы) и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы-интерпретаторы). Компиляторы полностью обрабатывают текст программы (исходный код). Они просматривают его в поисках синтаксических ошибок, выполняют определенный смысловой анализ и затем автоматический перевод (транслируют) на машинный язык — генерируют машинный код.

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

5.3.2. Уровни языков программирования

Разные типы процессов имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. В данном случае «низкий» не значит «плохой». Имеется ввиду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора. Языком низкого уровня является язык ассемблера, который просто представляет каждую команду машинного кода, но не в виде чисел, а с помощью символьных, условных обозначений, называемых мнемониками. Однозначное преобразование одной машинной инструкции в одну команду ассемблера называют транслитерацией. Так как наборы инструкций для каждой модели процессора отличаются, конкретной компьютерной архитектуре соответствует свой язык ассемблера, написанная на нем программа может быть использована только в этой среде.

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

В некоторых областях, например в машинной графике, на языке ассемблера пишутся библиотеки, эффективно реализующие требующие интенсивных вычислений алгоритмы обработки изображения.

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

⇐ Предыдущая12345Следующая ⇒


Дата добавления: 2014-01-06; Просмотров: 73; Нарушение авторских прав?;




Читайте также:

Языки программирования развиваются достаточно быстро, новые языки приходят на смену старым. Нужно всегда держать руку на пульсе событий, чтобы оставаться хорошим специалистом. Я думаю каждый программист не хочет быть аутсайдеров в своем деле. Мы подготовили статью, где детально анализируем топ языков программирования, которые будут популярны в 2018 году. Английскую версию статьи top programming languages in 2018 to learn вы можете почитать здесь.

Основой нашего анализа является статистика с ресурса Stackoverflow. Каждый год они подготавливают отчет о самых популярных языках программирования. В опросе участвуют более 50, 000 разработчиков со всего мира. Чтобы проследить динамику, мы собрали данные за 2017, 2016 год и использовали данные с Google Trends.

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

Javascript

Это один из самых популярных языков программирования. Он находится на первом место уже несколько лет подряд. По динамике видно, что этот тренд будет сохранится и дальше. Это самый кроссплатформенный язык программирования, который позволяет разрабатывать desktop, веб и мобильные приложения. Javascript имеет много удобных и гибких библиотек. Среди самых популярных стоит отметить React.js. Angular.js и Vue.js. Последняя библиотеке только набирает популярность. Vue имеет хорошую производительность и одна из самых легких для изучения. Тем не менее, ей будет тяжело выйти на столько высокий уровень популярности как другие библиотеки. Рынок уже поделен между React и Angular.

Библиотека React была разработана компанией Facebook. Она является одной из самых популярных на основе javascript. React позволяет разрабатывать мобильные приложения, сайты и SPA (single page application). React существенно легче в изучении по сравнению с Angular 2.

Angular разработан компанией Google и в последнее время терпит много трансформаций. Сначала все использовал Angular 1, несколько лет назад вышел Angular 2, который более производительней, удобней и быстрее. Сейчас Google разрабатывает Angular 4. Он должен заменить Angular 2 и стать лидером среди javascript библиотек. Посмотрим, что с этого выйдет. В целом, Angular сложный для новичков и хорошо подходи для разработки веб приложения для крупных компаний.

Кроме приведенных выше библиотек очень популярный node.js. Он позволяет разрабатывать серверную часть на Javascript. Это лучшее решение если вы хотите разработать back-end часть с использованием js. Как видите, javascript универсальный язык программирования. Имеет хорошую гибкость и производительность. Именно это и делает его одним из самых популярных в нашем списке. Я думаю в дальнейшем этот тренд сохранит свою динамику.

SQL

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

Java

Java очень популярный в финансовой и банковской индустрии. В первую очередь благодаря своей скорости работы и уровня безопасности. Java разработчики очень ценятся на рынке труда из-за дефицита. Этот язык программирования достаточно сложный для изучения и для новичков не всегда дается легко. Кроме всего прочего, приложения Android разрабатываются именно на Java. Это основная причина столь значительной популярности этого языка. По статистике Google Trends, динамика идет вниз. Стоит ли начинать изучать этот язык программирования — решать вам.

C#

Один из самых продвинутых и удобных языков программирования. Он является основным языком разработки для платформы Microsoft .NET. C# очень похож на Java, но все же имеет ряд своих преимуществ. Стоит отдельно отметить, что C# сложнее в изучении чем Java. Это не самое лучшее решения для новичков.

Python

До недавнего времени PHP был более популярный чем Python, но сейчас можно уверено сказать, что Python завоевывает доверие молодых разработчиков. Он имеет огромное количество преимуществ. В первую очередь, он лаконичный и понятный. Таким образом, Python – это отличный старт для начинающих разработчиков. Удобная структура кода позволяет легко разрабатывать проект и в дальнейшем поддерживать их. Для бизнеса это означает сокращение расходов. Питон это один из немногих серверных языков, который показывает динамику роста.

PHP

Самый используемый язык программирования для серверной части. Согласно статистике, PHP используют около 240 миллионов вебсайтов. PHP имеет хорошую гибкость и производительность. Его можно использовать для небольших бизнес сайтов, а также для крупных проектов с высокой нагрузкой. Существует множество фреймворков разработанных на PHP. Они имеют хорошую скорость и высокий уровень безопасности. Наша компания, Merehad, отдает предпочтение именно этому языку программирования. В своей работе мы используем Laravel фреймворк для разработки крупных веб приложений. Основными недостатками является, отсутствие возможности разрабатывать десктопные приложения и серверные компоненты. Как и большинство серверных языков программирования он теряет свою популярность.

C++

Один из самых сложных языков программирования.

Новичку будет сложно разобраться и многие стараются обходить его стороной. Но вместе с этим C++ имеет высокую производительность. Он позволяет создавать приложения и программы практически для любых целей.

TypeScript

TypeScript разработан компанией Microsoft. За короткое время он набрал популярность. TypeScript является гибким и производительным языком программирования, который основан на Javascript. Основатели TypeScript потратили много усилий и продолжают добавляют новые решения для повышения производительности и удобства. Неудивительно, что Javascript пытается внедрить их у себя. Если вы новичок, на него стоит обратить внимание, так как он будет продолжит набирать популярность в 2018 году.

Ruby

Это динамично императивный объектно-ориентированный язык программирования. Он используется в веб разработке в связке с фреймворком Rails. Ruby является языком сверх высокого уровня. У него простой и чистый синтаксис. Ruby обеспечивает хорошую масштабированность и легкое сопровождение.

Пятое поколение — языки программирования или прикладные системы?

Как и PHP он позволяет разрабатывать ecommerce платформы. Язык могут начать изучать новички. Основным недостатком является плохая документация и медленные рост популярности.

Swift

Язык разработан компанией Apple и был призван заменить Objective-c. Swift имеет улучшенную читабельность кода, больше возможностей по сравнению objective-c и повышенную безопасность. Он набирает популярность и сейчас превосходит objective-c. На мой взгляд это язык программирования имеет хорошие перспективы.

Objective-C

Язык был разработан еще в начале 90х годов. Это симбиоз на то время языка программирования C и Smalltalk. Он имел большой успех в свое время, но постепенно начал терять популярность. На смену этого языка пришел Swift, но многие разработчики не спешат прощаться с Objective-c.

Оцените (89 голосов — 4.5 из 5)

Спасибо!

1
(Ужасно)

2
(Плохо)

3
(Средне)

4
(Хорошо)

5
(Класс!)

Спасибо!

Подпишитесь на свежие статьи:

Ok

 

Основные понятия языков программирования. Развитие языков программирования.

Язык программирования — 5 букв. Какой?

Структуры и типы данных языка программирования. Трансляция. Компиляция и интерпретация. Эволюция и классификация языков программирования.

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

Если Я.П. ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня.

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

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

Эволюция языков программирования. Я.П. делят на пять поколений:

Поколение 1. Входят языки, созданные в начале 50-х гг. (машиннозависимые языки, язык Ассемблер).

Поколение 2. Конец 50-х-начало 60-х гг. (Символический ассемблер, в котором появилось понятие переменной. Возросли скорость разработки и надежность программ).

Поколение 3. 60-е гг. – 70-е гг. (Появились универсальные языки высокого уровня, с их помощью удается решать задачи из любых областей. Качества таких языков: относительная простота, независимость от конкретного компьютера, возможность использования мощных синтаксических конструкций. Результат – повышение производительности труда программистов.) (Кобол –для экономической области, Pascal – универсальный ЯВУ (Н.Вирт), Basic

Поколение 4. Начало 70-х гг.- по настоящее время. (Языки 4-го поколения предназначены для реализации крупных проектов, повышения их надежности и скорости создания. – Проблемно-ориентированные языки). (C++-объектно-ориентированный С, Java – начло 90-х гг. – компиляция в платформо-независимый байт-код)

Поколение 5. Середина 90-х гг. (Системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Языки программирования для Интернета – скрипт-языки – HTML, Perl, PHP, XML).

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

Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».

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

Сущность функционального (аппликативного) программирования определена А. П. Ершовым как «… способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени для функции, а единственным правилом композиции — оператор суперпозиции функции. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления».

Роль основной конструкции в функциональных языках играет выражение: К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций. Функция трактуется как однозначное отображение из X в X, где X — множество выражений.

Новую область — логическое, или реляционное программирование, — открыло появление языка PROLOG (Пролог) (PROgramming in LOGic — программирование в терминах логики). Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Так, имеется свыше 15 различных его реализаций на ПЭВМ. Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта, рассматриваемых в данном учебном пособии.

Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общезначимости логической формулы, построенной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Это свидетельствует о декларативности языка логического программирования. Она метко выражена в формуле Р. Ковальского: «алгоритм = логика + управление».

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

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

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

Транслятор — это программа, которая принимает исходную программу и порождает на своем выходе программу, записываемую на объектном языке программирования (объектную программу). В частном случае объектным может служит машинный язык, и в этом случае полученную на выходе транслятора программу можно сразу же выполнить на ЭВМ. В общем случае объектный язык необязательно должен быть машинным или близким к нему (автокодом). В качестве объектного языка может служить и некоторый промежуточный язык.

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

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

Транслятор с языка высокого уровня называют компилятором.

Литература: [1], с. 115-129; [2], с. 140-178.


Читайте также:

Внимание! Данный сайт не обновляется. Новая версия: shatalov.su

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

Дата создания: 2012-05-03 13:20:26
Последний раз редактировалось: 2012-05-03 13:23:50

Сегодня мы узнаем, что такое язык программирования, для чего нужны языки программирования и в чём заключается работа программиста. Но сначала немного истории.

История языков программирования

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

Для процессора любая программа — это просто последовательные перепады напряжения. Умные инженеры придали этим перепадам числовые значения.

Для простоты на данный момент учитываются только два состояния — есть напряжение или его нет. Первому состоянию соответствует число один (1), второму — число ноль (0), хотя бывает и наоборот. В 40-х годах были попытки использовать больше состояний — 10 (чтобы было удобно считать человеку), но от этого быстро отказались из-за сложности подобных схем.

Итак, любая программа для процессора выглядит вот так:

01011000101101011000110101011100000101010111101001010101111100000101001001010100101010010101

Инженерам приходилось писать и читать такие программы.

В начале 50-х появляется ассемблер. Это язык программирования низкого уровня. Программа на ассемблере выглядит намного понятнее. В ассемблере команды соответствуют инструкциям процессора.

Топ-5 языков программирования для новичков

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

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

В 1957 году был придуман первый язык программирования высокого уровня — Fortran (Formula Translation). Создателем языка был Джон Бэкус, а сам язык использовался в IBM 704. В то время ещё не существовало удобных устройст ввода/вывода и для этих целей использовали перфокарты. Первоначально Фортран мог обрабатывать только числа (обработка текста появилась позднее).

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

Нас интересует ветка, которая привела к С++. Предками языка C были ALGOL-60 (Algorithmic Language) — 1960 и PL-1 (Programming Language) — 1966. ALGOL был первым языком программирования, реализованным в нашей стране.

Язык C (1970) (читается как си) был побочным продуктом создания операционной системы UNIX (1971) в BellLabs. Создателем C был Деннис Ритчи. А сам язык (как и операционная система UNIX) впервые использовался в компьютерах PDP-11.

C++ был создан в 1983г. Бъярном Страуструпом и расширял язык C (добавлял в него возможности ООП — подробности мы узнаем позже).

Далее, кратко пройдусь по другим языкам:
COBOL (Common Business Oriented Language) – 1960. Язык для обработки в основном текстовой информации.
Pascal (1970) был создан талантивым человеком — Никлаусом Виртом, который участвовал в создании многих других языков. К сожалению, ему не сильно везло. В 1995г. была выпущена интегрированная среда для потомка Pascal’а — Delphi.
Симула-67 – впервые реализованы концепции объектно-ориентированного программирования (ООП). Симула была создана в Норвегии и во многом являлась потомком ALGOL-60. Развитие ООП привело к созданию Smalltalk в 1972г.
Особняком стоит язык Forth (1977), созданный Чарльзом Муром. Единственный язык высокого уровня, для которого есть реализация процессора (т.е. командами процессора являются команды языка Forth).

Концепции программирования

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

Основными концепциями мы будем считать две: структурное программирование и объектно-ориентированное. Они появились примерно в одно время (60-е годы). Мы ещё обсудим эти концепции подробно в следующих уроках.

Теперь нам необходимо ответить на несколько вопросов касательно программирования:

Что такое «программа»?

Программа — это инструкция компьютеру (процессору) что-то сделать. При этом разные программы решают разные задачи.

Что должен уметь делать программист?

Задача программиста — написание исходного кода программ. При этом программист использует какой-то язык программирования.

Исходный код — это просто текст (на определённом языке программирования). Чтобы исходный текст превратился в рабочуй программу требуется перевести его на ассемблер. Этим занимаются специальные программы: интерпретаторы и компиляторы. Для каждого языка (и под каждую операционную систему) нужен свой компилятор (или интерпретатор).

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

Любой язык программирования обладает определёнными правилами. Программа, написанная на каком-то языке, должна удовлетворять правилам этого языка. Правильность программы проверяет компилятор (интерпретатор).

Выполнение программ

Выполнение программы выглядит так:
— Берётся исходный код на определённом языке высокого уровня.
— Исходный код переводится на ассемблер (в двоичную форму из текстовой) посредством компиляции/интерпретации. На этом этапе проверяется правильность написанной программы.
— Операционная система выполняет программу — даёт задание процессору.

Также программу можно представить в виде уровней:
— Исходный код (текст) на языке высокого уровня.
— Компиляция/интерпретация.
— Язык ассемблера (программа превратилась в нули и единицы).
— Инструкции процессора.
— Взаимодействие физических элементов (полупроводников) посредством электричества.

Заключение

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


Роман Шаталов 2009-2012

Самые необычные языки программирования.

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

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

INTERCAL. Этот язык является одним из старейших в компьютерном программировании. Сами его создатели утверждают, что название означает дословно «Язык программирования с непроизносимой аббревиатурой». Создателями INTERCALL в 1972 году стали студенты Дон Вудс и Джеймс Лайон. Молодые люди хотели создать пародию на существующие языки программирования, потренировав к тому же свой мозг. В результате их детище, INTERCALL имеет принципиальные отличия от других языков. Привычные в других местах стандартные операции работают здесь необычным способом. Авторы внесли в свой язык парадоксальные конструкции, такие как «COME FROM», «FORGET» и даже «PLEASE ABSTAIN FROM CALCULATING» («уйди», «забудь» и «пожалуйста, воздержитесь от вычислений»). Специальные имена были данные и символам. Так, кавычки именуются кроличьими ушами, а знак равенства «=» — полрешетки, так как сама решетка выглядит как «#». Тем не менее, несмотря на необычность такого языка, он позволяет делать такие же вычисления, как и любое другое нормальное средство программирования.

Whitespace. Название этого языка дословно означает «пробел». У этого инструмента есть существенное отличие — для его управляющих конструкций используются только непечатные символы, в число которых попали пробел, табуляция и символ перевода строки. Следствием этого послужил тот факт, что текст программы на этом экзотическом языке можно скрыть внутри исходников другой программы. «Whitespace» появился на свет 1 апреля 2003 года, авторами стали Эдвин Брэди и Крис Моррис. Дата рождения языка стала причиной того, что его поначалу воспринимали как шутку.

Chef. Авторами этого языка в 2002 году стал Дэвид Морган-Марон. Интересно, что программы на Chef схожи с приготовлением блюд по рецептам. Все переменные названы в честь основных продуктов питания. Стеки, куда попадают значения переменных, называются «mizing bowls» (чаша миксера), а операции для работы с ними — «mix» (смешивание), «stir» (размешать) и так далее. Язык «Chef» основывается на следующих принципах:
— рецепты программирования должны не только давать необходимый результат, но и быть легкими в приготовлении и необычайно вкусными;
— рецепты должны быть доступны любому «повару», невзирая на его бюджет;
— в рецептах разрешается использовать традиционные кулинарные средства, такие как столовые ложки и чашки.
Чтобы понять уникальность этого языка, надо привести лишь список используемых для приготовления ингредиентов — p (potatoes, картофель), d (dijon mustard, горчица), l (lard, сало), r (red salmon, красный лосось), o (oil, масло), w (water, вода), z (zucchinis, цуккини).

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

Shakespeare. Этот экзотический язык был создан Джоном Аслаудом и Карлом Хассельстромом. Целью «Шекспира» было замаскировать исходный текст программ, придав им вид пьес великого драматурга по аналогии с языком Chef. В начале программы объявляется список действующих персонажей.

Таким образом авторы объявляют количество стеков. В результате они получают такие имена, как Ромео или Джульетта. Герои общаются друг с другом, задают друг другу вопросы, фактически же совершают операции ввода/вывода и используют условные операторы. Хотя программная модель и напоминает ассемблер, на деле она значительнее многословнее. От начала документа до первой пустой строки располагается эпиграф. Этот первый абзац компилятор воспринимает, как комментарий. Части кода программы на языке «Шекспир» именуются «Актами», которые делятся на сцены. Каждая «Сцена», как и каждый «Акт» пронумерованы римскими цифрами, служа метками для оператора «GOTO». Чтобы персонажам принять участие в действии, им надо сперва выйти на сцену. Для помещения их туда служит команда «Enter». Правда, если на сцене более одного персонажа, становится непонятным, с кем же именно ведется общение. Поэтому лишнее действующее лицо удаляется с помощью команды «Exit». По окончании действия акта или же при необходимости очистить сцену сразу от нескольких персонажей надо воспользоваться командой «Exeunt».

Omgrofl. Это средство программирования создал в 2006 году инженер Juraj Borza. Ключевые слова языка весьма напоминают распространенный в Интернете сленг. Название же «Omgrofl» и вовсе является результатом объединения слов «omg» и «rolf». Последнее является фактически одной из команд этого языка. Любопытно, что переменные в нем должны выступать формой сленгового языка lol. Таким образом здесь можно увидеть lool, loool, looool и так далее.

Piet. Это экзотический язык придумал уже упомянутый Дэвид Морган-Маром. В данном случае в качестве программ выступают цветные картинки, а код представлен в форме абстрактных рисунков. В результате программа на этом языке неискушенному взгляду напомнит абстракцию постмодерниста. Свой имя язык получил от голландского художника Пита Мондриана. Для программирования используется 20 разных цветовых оттенков. При этом 18 из них связаны друг с другом с помощью циклов оттенков и яркости. Лишь белый и черный цвета не входят в эти циклы.

Befunge. Самая первая версия этого языка появилась на свет еще в 1993 года, а автором стал Крис Пресси. Как он сам утверждал, его целью было создать язык максимально сложный для компиляции. Для этого в язык были внесены команды «p» и «g», которые модифицировали текст программы. Практически все одномерные языки программирования требуют некоторые синтаксических различий между исходным кодом и самими комментариями к нему. А вот в языке Befunge вообще не предусмотрено какого-либо синтаксиса для комментария. Для того чтобы вставить пояснения в код, программист просто «обводит» управление вокруг этой области. Задачей компилятора является обнаружение таких необозначенных ничем комментариев.

Malbolge. Такое необычное программное средство придумал в 1998 году Бен Олмстед. Он решил создать язык, который был бы максимально сложным для создания на нем программ. Да и название было выбрано подходящее, ведь Malebolge — восьмой круг ада Данте. Чтобы создать на этом языке первую программу потребовались долгие два года.

Brainfuck. Этот язык является одним из самых известных среди всех необычных средств такого рода. Автором его стал в 1993 году немец Урбан Мюллер, который создал свое детище ради забавы. В языке всего восемь команд, для написания каждой из них требуется всего один символ. Исходный же текст программы на Brainfuck выглядит как последовательность этих символов без какого-либо дополнительного синтаксиса. Урбан Мюллер вспоминает, что он стремился создать язык с минимально возможным компилятором.

Языки программирования. Лекция 5.3. Программирование

Частично его вдохновил на эту работу язык FALSE, чей компилятор занимал всего 1024 байта. А для языка Brainfuck в природе существуют компиляторы менее 200 байт! Писать на нем в итоге настолько сложно, что программисты шутят, что это язык для настоящих мазохистов. Неслучайно дословный перевод Brainfuck означает «половой акт с мозгом». Тем не менее стоит отметить, что Brainfuck является не только простым языком, но и естественным, полным и может использоваться при определении понятия вычислимости.

Популярные мифы.

Популярные факты.

Популярные советы.

.

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

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