Как создаются языки программирования?

Ответить
Ответить
Комментировать
0
Подписаться
17
4 ответа
Поделиться

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

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

Во-первых, банально сделать жизнь программиста более легкой, а его код - менее

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

Во-вторых, ввести новые абстракции, перейти к новым парадигмам (принципам)

программирования - что также облегчает участь разработчика, а его код - делает более лаконичным, понятным. Так, в языке C++ (по сравнению с его "родителем" - языком C) появляется понятие "класса", важнейшего в парадигме объектно-ориентированного программирования (ООП).

В-третьих, обеспечить кроссплатформенность программ - их переносимость между аппаратными платформами. Классический пример - Java.

Могут быть и другие цели, и далеко не всегда - серьезные. Пример - эзотерический язык программирования Brainf..k, название которого говорит само за себя.

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

Что касается самого процесса разработки нового языка программирования, то здесь нет какого-то определенного алгоритма действий. Так, разработка языка C# (в каком-то смысле - потомка C++ и Java) велась группой программистов в Microsoft. Язык C++ же был создан в каком-то смысле спонтанно. Датский программист Бьерн Страструп просто по ходу дела добавлял в язык C определенные, необходимые ему в то время, возможности, "фичи". Стандарт языка C++ был принят несколько позже. Какое-то время он даже не имел собственного названия, и назывался просто как "C с классами".

6
Прокомментировать

>>Наверное, для того чтобы понять, как они создаются, нужно узнать - почему.
^^ Там так и не было ответа как именно они создаются. Только ответ на "почему" и есть.

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

Они создаются точно так же как и любые другие программы.

1. Продумывается под какие задачи должен язык быть заточен (например, джава является мультиплатформенной из-за "джава-машины" - виртуального посредника между платформами и написаной программой... ; .Net семейство языков транслируется с разных языков в один единый код который уже компилируется в конечную программу -- что создает возможность удобного взаимодействия между проэктами написанными на разных языках и некоторые другие плюшки)

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

3. Пишется компилятор.(программа, главная задача которой -- трансляция текста программы[исходного кода] в эквивалентную программу на низкоуровневом языке, близкому к машинному бинарному коду)

4. Оттачивается сам синтаксис "в бою". Потом пишется новая версия того же языка с исправлениями и исправляются двузначности и другие минуса.

_____________________________
Теперь про недвусмысленность...
Есть простой код который выглядит +- одинаково на большинстве языках программирования:

int i = 5;
i = ++i + ++i;

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

4
Прокомментировать

Разгадка "парадокса брадобрея":(№1)Брадобрея - побреет другой брадобрей,живущий в другом городе,а он,побреет этого иногороднего брадобрея!...

0
Прокомментировать
Читать ещё 1 ответ
Ответить