Создать ЯП - это может быть курсовой работой в ВУЗе. Возможно, не для одного студента, а для небольшой группы (4 человека).
Сложность зависит от требований к качеству языка и от круга задач. Например, объём стандартной библиотеки может быть очень разным. Она может быть гигантской или вообще отсутствовать.
В вопросе написано: "Создать с нуля". Как это понимать? Я должен забыть все языки, какие знаю? Нельзя использовать имеющееся ПО при создании компилятора?
Считается, что JavaScript создали за 10 дней. Kotlin разрабатывали 6 лет. Все используемые языки дорабатываются со временем (когда они уже используются).
Каждые 3 года выходит новый стандарт языка C++. Разработкой занимается большая группа людей, там наверно 100 человек. Но это у них не основная работа, а скорее как хобби или общественно-полезный труд.
Другие языки программирования и технологии
Возможно ли создать новый язык программирования с нуля ?
Конечно.
Такие вещи делаются постоянно, причем часто для каких-то очень утилитарных целей, а не для широкого использования. Помниццо, я на заре карьеры изобрел язык программирования для управления игрушечным паровозиком - это было гораздо легче и гибче, чем жестко программировать PLC под эту веселую задачу.
Такие вещи делаются постоянно, причем часто для каких-то очень утилитарных целей, а не для широкого использования. Помниццо, я на заре карьеры изобрел язык программирования для управления игрушечным паровозиком - это было гораздо легче и гибче, чем жестко программировать PLC под эту веселую задачу.
Язык создать нетрудно. Его можно придумать на бумаге. Достаточно расписать все конструкции языка в виде диаграмм Вирта. Мы это делали на третьем курсе.
Другое дело — реализация программного обеспечения, которое позволит компьютеру понимать такой язык и исполнять программы на нем.
В рамках нашего курсовика мы делали интерпретатор. То есть написанная нами среда исполняла программы внутри себя. А бывает еще компилятор, который переводит программу в машинный код (обычно посредством ассемблерного кода) и позволяет ей работать без участия среды.
Другое дело — реализация программного обеспечения, которое позволит компьютеру понимать такой язык и исполнять программы на нем.
В рамках нашего курсовика мы делали интерпретатор. То есть написанная нами среда исполняла программы внутри себя. А бывает еще компилятор, который переводит программу в машинный код (обычно посредством ассемблерного кода) и позволяет ей работать без участия среды.
Возможно. Теория языков программирования хорошо развита. Но нужно эту теорию изучить.
Ну первые языки программирования же откуда-то взялись!
Например языки ФОРТ (не путать с фортраном), бейсик и Паскаль, каждый создан одним человеком.
Например языки ФОРТ (не путать с фортраном), бейсик и Паскаль, каждый создан одним человеком.
Темеш Аргын
По-моему, язык можно считать готовым, когда о нём заявил его создатель, и язык начал использоваться. Не знаю, есть ли стандарт языка Бейсик. У всех разновидностей Бейсика точно нет стандарта, а язык (языки) есть.
Этому обучают в университетах, дают основы построения языков. Мой напарник в группе писал интерпретатор лиспа на C#, а я на JS не редко пишу подязыки что бы в строку засунуть команду, или например писал калькулятор методом обратной польской нотации. Написать язык не сложно, сложно сделать это правильно и сложность так же зависит от того насколько он будет хорошим по итогу. Но создавать язык или фреймворк это делать то что чуть ли не каждый до тебя уже создавал, конкуренция большая
Темеш Аргын
Написать интерпретатор LISP и создать ЯП - это немного разные вещи, на мой взгляд. Чтоб создать ЯП, надо его придумать. Это главное. Когда пишут новый компилятор языка, не создают новый язык.
Вопрос не в том, чтобы создать (это делается регулярно), вопрос в том, чтобы убедить широкие массы разработчиков им пользоваться.
В наше время значительная часть прикладного программировния состоит в том, чтобы вызывать всякие-разные API. И успех нового языка будет определяться в значительной мере тем, насколько легко в нем реализовать обращения к уже существующим API.
Альтернативный вариант -- язык программирования создается одновременно с новой категорией оборудования и операционной системой для него. Для примера -- Swift был разработан на замену Objective-C для разработки приложений под macOS и iOS...
В наше время значительная часть прикладного программировния состоит в том, чтобы вызывать всякие-разные API. И успех нового языка будет определяться в значительной мере тем, насколько легко в нем реализовать обращения к уже существующим API.
Альтернативный вариант -- язык программирования создается одновременно с новой категорией оборудования и операционной системой для него. Для примера -- Swift был разработан на замену Objective-C для разработки приложений под macOS и iOS...
Вот выше «Вопрос не в том, чтобы создать (это делается регулярно), вопрос в том, чтобы убедить широкие массы разработчиков им пользоваться.» правильно и написали. Вот есть язык «На Google I/O 2019 было объявлено, что язык программирования Kotlin стал приоритетным в разработке под Android» - популярности наберет тогда, когда тебе просто не оставят другого выбора, как только на него перейти. Так что язык простой можешь сам создать из подобных https://ru.wikipedia.org/wiki/Brainfuck а будет ли это нужно.... еще вопрос. Если это нужно хотя бы тебе, то уже хорошо :)
Да, но это займет несколько лет. И потребует соответствующей оплаты. И не только на покушать и одеться. А на кучу развлечений еще. Иначе надоест.
Практической ценность разработки крайне сомнительна, при трудоустройстве у многих возникнет вопрос, насколько твой опыт релевантен их проектам. Кто-то вовсе увидит в тебе тунеядца, который 5 лет делал непонятно что. Да, тунеядцами всех считают эксплуататоры, но других вакансий может вообще не быть :) А карьеру с чего-то начинать надо :)
Практической ценность разработки крайне сомнительна, при трудоустройстве у многих возникнет вопрос, насколько твой опыт релевантен их проектам. Кто-то вовсе увидит в тебе тунеядца, который 5 лет делал непонятно что. Да, тунеядцами всех считают эксплуататоры, но других вакансий может вообще не быть :) А карьеру с чего-то начинать надо :)
Vepa Shirinov
а ктото просто хакнет его язык и не скажет ему
Нафига? Создать можно, но фундаментом послужат иные языки программирования.
Леонид Веденкин
Просто ради прикола )
возможно все
Сколько ж таких идиотов то разведётся еще в эту эру? Такие обычно даже апишку не в силах написать, а тут он о ЯПе...
Похожие вопросы
- Как написать новый язык программирования
- Как создать свой язык программирования ?
- Как создать свой язык программирования? совет?
- А реально создать свой язык программирования?
- Почему бы не создать идеальный язык программирования?
- Как создать свой язык программирования?
- Хочу создать свой язык программирования. Нужна помощь по синтаксису
- Почему россияне не могут создать свой язык программирования?
- Хочу создать свой язык программирования и компилятор. Думаете это очень сложно?
- Как создать собственный язык программирования?