OSDev http://osdev.su/ |
|
Своя ОС - свой компилятор http://osdev.su/viewtopic.php?f=6&t=355 |
Страница 1 из 2 |
Автор: | qeos [ 29 ноя 2010, 04:41 ] |
Заголовок сообщения: | Своя ОС - свой компилятор |
В результате метаний по разным компиляторам понял, что существующие не дают того, что мне нужно. Кто-нибудь писал компилятор? Покажите, что у вас есть? |
Автор: | SII [ 29 ноя 2010, 12:28 ] |
Заголовок сообщения: | Re: Своя ОС - свой компилятор |
Писал, но давно. Транслятор Паскаля написать несложно (если без оптимизации, конечно, она сама по себе может быть очень сложной вещью, но к языку как таковому уже не привязана), Си и тем более Си++ -- повесишься, у них абсолютно невменяемый синтаксис, что серьёзно усложняет разбор и формирование промежуточного представления. Сейчас пишу транслятор ассемблера, причём в двух разновидностях -- под АРМ (поскольку существующие -- разная степень отстойности, самым вменяемым из испробованных оказался Кейловский) и под ИА-32 (тоже ни одного, который меня целиком удовлетворял, не обнаружил). В планах на будущее имеется свой Паскаль и, возможно, Ада -- существующие ФриПаскаль и ГНАТ (Ада из ГЦЦ) достаточно глючные, причём мне совершенно непонятно, в каком направлении развиваются эти трансляторы, ну а к ФриПаскалю ещё и претензии в части самого языка есть. |
Автор: | Himik [ 29 ноя 2010, 21:20 ] |
Заголовок сообщения: | Re: Своя ОС - свой компилятор |
qeos, я не понимаю тех, кому легче написать свой компилятор, чем изучить существующий, созданный людьми однозначно не глупее. Хочется странного, смотри C--. SII, я вас умоляю, не гоните на Си. Трудности разработчиков компилятора программистов не волнуют :) |
Автор: | qeos [ 29 ноя 2010, 23:26 ] |
Заголовок сообщения: | Re: Своя ОС - свой компилятор |
chizh писал(а): qeos, я не понимаю тех, кому легче написать свой компилятор, чем изучить существующий, созданный людьми однозначно не глупее. Хочется странного, смотри C--. есть два пути, один трудный и громоздкий, другой тяжелый и легковесный. в частном, моем случае, написание связано с тем что типичные компиляторы компилируют статичный код. т.е. раз скомпилировал и запускай. в моем случае требуется частично динамическая компиляция, когда нужно перекомпилировать только какую-то функцию. можно конечно взять чтото готовое, но к этому придется прикручивать такие костыли, что в итоге можно потерять напрасно кучу времени. спасибо, но я уже перебрал кучу компиляторов. не подходят. то у одного чтото не хватает, то другой чтото не может, то еще чегонибудь. кстати мое `овно уже умеет компилировать это: Код: main(2,3);
exit(); method main(parametrA, parametrB){ parametrN = 111 * d(2*parametrB) + (222 + 333 / 444) + parametrA; } method d(ps){ p = ps*ps; } method exit(){ // } |
Автор: | Himik [ 29 ноя 2010, 23:40 ] |
Заголовок сообщения: | Re: Своя ОС - свой компилятор |
qeos, частичную компиляцию осуществляет утилита make (и различные виды cmake, nmake, wmake). Ей на вход подаётся конфигурационный файл, в котором список исходников. Она автоматически отслеживает какой файл изменился, а какой нет, и компилирует только изменённые файлы. Функции естественно надо располагать по разным файлам, т.к. "разделение" происходит на уровне файлов. |
Автор: | phantom-84 [ 30 ноя 2010, 12:34 ] |
Заголовок сообщения: | Re: Своя ОС - свой компилятор |
Можно просто откомпилировать исходник с функцией. Я считаю, что достаточно написать свой компоновщик и то только в том случае, если используются оригинальные форматы исполняемых файлов. |
Автор: | qeos [ 30 ноя 2010, 19:04 ] |
Заголовок сообщения: | Re: Своя ОС - свой компилятор |
phantom-84 писал(а): Можно просто откомпилировать исходник с функцией. Я считаю, что достаточно написать свой компоновщик и то только в том случае, если используются оригинальные форматы исполняемых файлов. а потом мучаться с портированием? |
Автор: | phantom-84 [ 30 ноя 2010, 21:24 ] |
Заголовок сообщения: | Re: Своя ОС - свой компилятор |
С портированием чего? Компилятор можно портировать существующий даже без модернизации, направленной на поддержку нового формата. Собрать компоновщик под новую платформу, используя компоновщик под какую-либо существующую платформу, как два пальца... |
Автор: | ZarathustrA [ 30 ноя 2010, 21:46 ] |
Заголовок сообщения: | Re: Своя ОС - свой компилятор |
Товарищ, по своему опыту могу посоветовать - не пиши компилятор. Оно того не стоит. Они пишутся и сложно и легко одновременно. Сначала вникаешь в литературу, неделями хреначишь модели конечных автоматов. Все проверяешь и т.д. Потом за день кодирования - вуаля и один из анализаторов готов. Оптимизация - это свои вилы. Я за них даже не брался. Не веришь, читай книгу красного дракона. Получишь большое наслаждение. Есть простой вариант использовать генераторы анализаторов типа YACC, Бизон и других. На них эту бороду писать в десятки если не в сотни раз проще, но можешь сразу забыть про все рюшки типа динамической компиляции своего формата исполнимых файлов и т.д. Советую этим заниматься только в том случае, если твоя основная цель написание компилятора (своего ЯП), а не разработка ОС. За двумя зайцами. |
Автор: | qeos [ 03 дек 2010, 06:50 ] |
Заголовок сообщения: | Re: Своя ОС - свой компилятор |
Вот всегда так у русскоязычных.. Чего-нить спросишь и тебе 150 доводов, что так делать не надо.. Ну товарищи, я ж не просил рассказать какие вы и какие у вас проблемы. Если вы что-то делали, то я прямо и сказал "покажите".. Вот в англоязычных по другому. Там если спросишь что-нибудь, то тебе стараются помочь как-то, что-то предложить. Так никогда ничего не сделать толкового. Ни Бил, ни Гейтс, ни их общий друг - Джопс тоже не знают всего что написано в виндовсе.. Что ж они теперь не должны были делать очередной гомнопродукт? И тем не менее со временем он приобрел нормальный вид. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |