Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Могут ли программисты изобрести что-то принципиально новое для языков программирования?

Изобрести свой язык программирования?
ТехнологииПрограммированиеЯзыки программирования
Анонимный вопрос
Data Science
  · 19,6 K
Веб-разработчик, геймер, специалист по этике  · 3 июн 2022
А насчёт "изобрести свой язык программирования"… давайте я научу вас изобретать языки программирования.
  1. Придумываете грамматику языка, то есть, как он будет выглядеть визуально, напечатанный.
  2. Придумываете семантику языка, то есть, что компьютер должен делать, дойдя до очередного элемента грамматики. На самом деле этот пункт должен быть первым, потому что языки программирования придумывают с определённой целью, для решения конкретных задач конкретным способом, но с обывательской точки зрения нужно начинать с формы, а не с содержания, поэтому я решил подстроиться.
  3. Пишете формальную EBNF для вашего языка. На бумажке. Например: 
выражение = атом  | список
атом      = число | символ    
число     = [+-]?[\p{Number}]+
символ    = [\p{Alpha}][\p{Alpha}\p{Number}].*
список    = '(', выражение*, ')'
  1. Теперь на основании вашей грамматики на бумажке вы пишете скрипт для универсального конструктора парсеров bison. В процессе выполнения этого скрипта бизон вам делает код парсера токенов в узлы AST и заголовочный файл для токенайзера.
  2. Теперь на основании вашей грамматики на бумажке и заголовочного файла для токенайзера вы пишете скрипт для универсального конструктора токенайзеров flex. В процессе выполнения этого скрипта флекс вам делает код токенайзера. 
  3. Теперь, имея токенайзер и парсер, вы дописываете код кодогенератора, который превращает узлы AST от парсера в вызовы LLVM, они будут генерировать код на промежуточном языке LLVM.
  4. Вуаля, вы написали фронтэнд к LLVM для вашего нового языка программирования. Компилируем его и всё, у вас есть компилятор вашего языка для всех платформ, которые поддерживают LLVM. То есть, всех.
  5. Публикуете статью о вашем новом языке на хабре, лоре, в соцсетях, в телеге, делаете сайт-одностраничник со ссылкой на скачивание компилятора.
  6. ???
  7. PROFIT!
Видите? Не пришлось даже читать драконью книгу или учиться пять лет в университете. Вот чувак написал свой язык в качестве упражнения в 2009 году. В самом проекте LLVM есть туториал по созданию своего языка, причём они по хардкору даже сами пишут парсер и токенайзер без flex и bison.
Отбросив иронию в сторону, то, что я хотел сказать - это что создание языков программирования уже давно не чёрная магия, доступная только академии. Теперь это вопрос практической применимости, в 2022 году у нас уже есть готовые промышленные инструменты, документированные принципы, техники для этого. Да даже сами готовые языки программирования на любой вкус. Это уже не достижение — LOLCODE, Ook, Chef, Brainfuck, GolfScript и десятки других эзотерических языков программирования тому доказательство.
Более того, концепция "языка программирования" распространяется не только на языки программирования общего назначения, которые будут компилироваться в машинный код. Среди паттернов проектирования есть паттерн под названием "интерпретатор", он описан ещё в исходной книге банды четырёх, двадцать семь лет назад, я только что перепроверил в своём экземпляре. Концепция, как и книга, под названием Domain-Specific Languages, предметно-зависимые языки, существует уже минимум десятилетие.
"Принципиально новое" в разработке программного обеспечения это уже давно не просто новый язык программирования.
2 эксперта согласны
Пишу код и т.п.  · 23 апр 2022  · itustinov.ru
Периодически возникают смелые проекты: Хаскелл, Эрланг, Perl, Raku. Нельзя отрицать влияние на новые возможности в языках лингвистики, математики, философии, культуры в целом. Нечто по-настоящему новое появляется в результате сотрудничества автора с сообществом, или сообщества с каким-то утверждающим новые возможности органом (кто-то должен упорядочивать RFC) или даже... Читать далее
2 эксперта согласны
Пофигист с большим жизненным опытом, обремененный образованием и личной жизнью... ;)  · 9 июн 2022
Ваш вопрос в корне неправилен! Он даже не непонятен а именно неправилен. Как минимум в том, что ты должны были нам дать понять, что именно вы вложили в смысл слов «принципиально новое». Программирование - это всегда оперирование математикой логических значений, а также управление командной системой какого-то процессора (не камня, микросхемы контроллера, а именно... Читать далее
2 эксперта согласны
Погромист на C#  · 26 апр 2022
Вопрос не имеет смысла. Пойдём от обратного: допустим, что программисты не могут ничего принципиально нового привнести в индустрию или создать новый ЯП. Если бы это было так, то новые языки не появлялись бы, как и новые подходы в разработке. Например за последние лет 15 появилось минимум 6 новых языков, которые активно используются в современной разработке: -... Читать далее
1 эксперт согласен
Очень интересно IT. Программист самоучка  · 25 апр 2022
Естественно. Программист может как минимум разработать новый модуль для языка программирования, который улучшит его. Также программист может работать в команде разработчиков языка и вносить в него изменения, добавлять функции, исправлять баги. Тем самым программисты облегчают работу с языком программирования и делают его лучше
1 эксперт согласен
Образовательная платформа Хекслет  · 2 мар 2023  · ru.hexlet.io
Да, это вполне вероятно. Языки программирования постоянно развиваются, также появляются новые языки и функциональные возможности. Многие новые языки программирования были созданы программистами, которые вдохновлялись своими опытами и экспериментами в разработке программного обеспечения, а также желанием улучшить эффективность программирования. Программисты могут... Читать далее
Помогаем новичкам освоить профессию веб-разработчикаПерейти на ru.hexlet.io/webinars
военный инженер-математик на пенсии, интересы: гномоника, воспитание детей, Van-life.  · 27 апр 2022  · analemma.ru
Когда языки появляются из "чистой идеи", то возникает LISP. В этой области можно ожидать чего-нибудь, танцующего от задач/интерфейса с будущим ИИ.  Когда язык возникает из специфических структур данных, то появляется SQL. Возможно будут создаваться метаязыки высокого уровня с новыми типами данных, например, видео (аудио), поисковый запрос и т.д. Из железа пока ничего... Читать далее
Стараюсь жить по истинному времени, поэтому общаюсь в offlineПерейти на analemma.ru
3 эксперта согласны
Михаил Б
подтверждает
29 апреля 2022
Верно
SMM/SEO/ Директор маркетинговой компании. Продвигаем бизнес в цифровой среде Vkontakte...  · 26 янв 2023  · taplink.cc/businessb2b
Да, программисты могут придумать что-то принципиально новое для языков программирования. Область языков программирования постоянно развивается, постоянно разрабатываются новые языки и обновления существующих языков. Новые языки могут вводить новые функции, концепции и парадигмы, которые могут сделать программирование более эффективным, выразительным и мощным. Примеры... Читать далее
Продвижение бизнеса /SEO/ Создание любых сайтов / Создание сценариев и роликов Перейти на taplink.cc/businessb2b
Инженер путей сообщения – строитель  · 23 апр 2022
Всё принципиально новое в языках программирования, как и сами языки программирования изобретены программистами. Следовательно программисты могут изобрести свой язык программирования и с принципиально новыми идеями. Сам «изобрёл» несколько штук. Не знаю насколько это принципиально, насколько это новое, но у меня можно при определении необязательных аргументов функции... Читать далее
6 экспертов согласны
Михаил Б
подтверждает
30 апреля 2022
Точно
Частный крипто-программист  · 25 янв 2023
Собственно они ежедневно этим и занимаются ежедневно. Что то придумывают новое, чего раньше не было. Языки программирования постоянно развиваются.
1 эксперт согласен