C/C++
На каком языке программирования (Assembler / С / С++) лучше будет написать компилятор для своего языка программирования?
Учитывая, что компилятор и является своего рода инструментом написанного нами языка программирования (перевода исходного кода "текста" на машинные коды), то выходит нужно создать лишь компилятор, но на каком языке эффективнее будет? Или разницы особо никакой нет. Просвятите неофита. Из языков знаю лишь С++ на 60-65% где-то. Остальные незначительно (Assembler / Java)...
Да там разница будет 1%. Си быстрее и легче, чем Си++. Ассемблер - классика, но даже сейчас уже пишут на Си вместо ассемблера
Компилятор компилируемого языка, как правило, пишется на этом самом языке, кроме самой первой версии, разумеется. Так что выбор языка для первого компилятора не критичен абсолютно, пиши на том, что лучше знаешь.
"Создать лишь компилятор"??? Самый известный учебник по написанию компиляторов содержит около 1200 страниц немаленького формата.
Не важно, на каком языке написан компилятор. Важно, насколько оптимальный машинный код он генерирует. И тут лучше не писать с нуля, а взять, например, llvm - который позволяет создать свой front-end для любого языка программирования.
Не важно, на каком языке написан компилятор. Важно, насколько оптимальный машинный код он генерирует. И тут лучше не писать с нуля, а взять, например, llvm - который позволяет создать свой front-end для любого языка программирования.
Adilet Mazhidulla
Мой кореш от безделья на ночных сменах написал целую "ось" под IBM-360, и она даже успешно проработала несколько лет... Но всего на одном вычцентре, где и трудился мой кореш... :)
Валерий Турыбрин
*LLVM, а не W
лучше-то лучше, но намного сложнее, чем написать свой велось))
особенно если мозг подкован математически и алгоритмически, но собственно опыта программирования нету и аналитического технического мышления нет)
лучше-то лучше, но намного сложнее, чем написать свой велось))
особенно если мозг подкован математически и алгоритмически, но собственно опыта программирования нету и аналитического технического мышления нет)
Андрей Горелов
У меня есть источники по которым обучаюсь конструировать компиляторы. Один из них: http://buildyourownlisp.com/contents . Другой - это всеми известная книга "Дракона" которую я читаю на досуге.
Мне в этом плане очень помог исходник компилятора с Си. Написанный на Си.
Кажется, в 1986 году...
Кажется, в 1986 году...
Андрей Горелов
Благодарю за помощь :)
сначала язык придумай и опиши. что там будет, и как, что..
Андрей Горелов
Занимаюсь сейчас этим :)
Интересно, какие такие "сверхзадачи" перед тобой поставлены, что тебе ни один существующий ЯП уже не подходит?! :)))
Андрей Горелов
Как бы смешно это не выглядело, но мне синтаксис не угодил. Хочу тот же С++, но со своим синтаксисом. Вообще я еще подумаю, если задача по написанию компилятора окажется слишком непосильной, то заброшу эту идею и останусь сидеть на плюсах.
Лучше писать на том языке, который ты знаешь. Специалист сам выбирает подходящий язык программирования. А неспециалист вряд ли справится с решением задачи.
Для синтаксического анализа текста есть генераторы парсеров, например ANTLR. C++ там поддерживается, Ассемблер не поддерживается.
Для синтаксического анализа текста есть генераторы парсеров, например ANTLR. C++ там поддерживается, Ассемблер не поддерживается.
Андрей Горелов
Тоже так думаю :)
на плюсах наверное попроще будет...
Андрей Горелов
Я подумаю..)
Своего языка?.. Это как изобретать колесо думая что оно будет круглее чем существующие колёса, при этом даже не зная какие существуют
Виталий Минин
Живи в пещере с камнем. Всё равно же лучше ничего не сделали.
Андрей Горелов
Я имел ввиду другого "нового" языка, того которого еще не существуют. Ведь сейчас много новых создается и они становятся популярными, а старые со временем уходят в небытие. Новый язык решено было создавать: 1. на нем будет удобнее писать и отлаживать код, ибо будет полное понимание того как все работает под капотом, 2. оставить свой след в истории, 3. иногда полезно изобретать велосипеды в целях саморазвития. И да, может пускай я многого не понимаю, но я только на пути божественного замысла.
Похожие вопросы
- Стоит ли выбирать язык программирования c++ или лучше учить java. Требуется ли для этого языка хорошо знать математику?
- На каком языке программирования написан C (Си)?
- Чем отличаются языки программирования ???
- Что такое #include <iostream>, std using namespace std В языке программирования C++?
- Почему изучение C++ как первый язык программирования даёт такое сильное преимущество во всех планах чем изучение
- Язык программирования c++
- C#; C++; python изучение языков программирования
- Помогите решить данное задание, на языке программирования с++
- Посоветуйте легкие языки программирования, который можно изучить в 14 лет.(читать описание)
- Если изучить один язык программирования, будет ли легче изучить что-то посложнее?
Твой компилятор будет использовать GCC?
Компилятор - программа переводящая твой код (например С) на машинный код (типа ассемблер но ещё сложнее), то есть ты должен знаю ассемблер и как работает ехе-файл.
Я бы основал его на ассемлере, так как язык быстрый и гипкий. А "компилятор" написал бы на С который переводит мой кд на язык ассемблера и в тот же момент ассемблер его бы перевел на двоичный файл.