![]() |
Модераторы: Snowy, Poseidon |
![]() ![]() ![]() |
|
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Предлагаю всем желающим совместную разработку компилятора языка C (ANSI) в целях самообразования и (или) практической выгоды (на поздних этапах).
У меня нет абсолютно никакого опыта совместных проектов, потому с удовольствием попрактикуюсь ![]() Во-первых, разработка будет открытой и все исходники будут размещаться на каком-нибудь Google-Code. Во-вторых, я не знаю, каким образом происходит обсуждение проекта среди его участников, так что подскажите на этот счет ![]() Цель - написать (в идеале) полноценный компилятор языка Си, или некоторое его (по возможности наиболее полное) подмножество. Переднего и заднего плана (front-end, back-end). Высказывайтесь. Очередная банальность и велосипед о трех колесах. Это сообщение отредактировал(а) TheVoid - 27.6.2009, 00:39 |
|||
|
||||
Mazzi |
|
|||
![]() Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 1 Всего: 21 |
Если нет опыта проектов, то задача великовата для тебя. Это звучит примерно как, "А не написать ли мне роман "Война и мир" примерно как у Толстого?"
Поищи, в сети есть исходники готовых бесплатных компиляторов. Почитай, разберись. Сделай несколько простых проектов. Ну а потом уже... -------------------- Мне нужны помощники. |
|||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
ассемблер знаешь? если нет то тебе там делать нечего. а почему ANSI, а не C99?
Это сообщение отредактировал(а) DEADHUNT - 30.6.2009, 11:28 |
|||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Нет, речь шла о совместных проектах. Не спрашивал даже "а как же мне написать свой язык программирования". Опыт программирования имеется, чтобы не задавать таких вопросов. Знание маш. кодов потребуется на поздних этапах компиляции - непосредственно, генерации кода. Чтобы не ударить лицом в грязь, изучаю книгу тов-ща Кипа Ирвина "Язык ассемблера для процессоров Интел". Личные предпочтения. |
|||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
без вывода ассемблерного листинга сложно увидить работу компилятора. да и в чём будет заключаться его работа(на начальных этапах)? сказать - ошибок нет. Это сообщение отредактировал(а) DEADHUNT - 30.6.2009, 22:01 |
|||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Начальный этап: препроцессирование, разбивка на токены, заполнение таблицы символов. Выходные данные: деревья или "четверки". Уже потом, оптимизация и, непосредственно, код.
Это сообщение отредактировал(а) TheVoid - 30.6.2009, 22:25 |
|||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Завел собственный Блог, где буду делиться подробностями реализации компилятора. Комментарии приветствуются.
Надеюсь, кто-нибудь проявит интерес и отпишется... Это сообщение отредактировал(а) TheVoid - 10.7.2009, 23:16 |
|||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
хорошо что всё такие есть люди которым интересно разрабатывать компилятор. похоже ты действительно ничего не понимаешь в построении компиляторов, поскольку сложность утверждений if, while, for практически одинаковая. а если думаешь потом писать компилятор C++ то в первую очередь задумайся о сканере, что бы решать разные не однозначности. Это сообщение отредактировал(а) DEADHUNT - 12.7.2009, 17:14 |
|||
|
||||
Shitbox2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.7.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Дополню.
Лучше начни писать не компилятор, а визуальную надстройку на компилятор. Для начала, чтобы логические блоки (if, for ...) были ограничены разноцветными областями. Навыки программирования графики и особенно таких компиляторов в скором времени будут сильно востребованы. |
|||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
ужас, ты не понимаешь идею C. делаешь из C какой-то паскаль. лучше поройся в исходниках linux, чтобы определиться с стилем кодирования. и ещё не надо делать каких-то приставок к именам, для этого придумали ключевое слово static. |
|||
|
||||
TheVoid |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Нет, я правда не профессионал на этом поприще. Я только учусь.
И что из этого утверждения следует? Нет, я не настолько псих ![]()
Решим. Как только лбом упремся в это дело.
Не-а, это не входит в мои приоритеты.
Ну, к тому времени у меня и опыта наберется. Хотя как я уже говорил, пока что это хобби, а не трудовая деятельность. А мне казалось, что идея Си - не сковывать программиста, а наоборот, позволить делать ему все, что только заблагорассудиться... Здесь до сих пор спорят о вкусах и личных предпочтениях? Мрак. Ребят, меня правда не надо упрекать или критиковать (до фени мне это), если решите что-нибудь "по существу" (с) сказать, буду признателен за советы и помощь. Это сообщение отредактировал(а) TheVoid - 12.7.2009, 18:40 |
||||||||||
|
|||||||||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
в С нету не однозначностей, особенно по стандарту C99(где уже запретили default-int и соответственно конструкции вида main(){...}), значит отпадает необходимость в сканере с откатом. как разбор будет происходить? LL(k), LR(k) анализатор(или ещё что-то в этом духе) или рекурсивный спуск? как препроцессор будет работать? и вообще очень советую начинать конструирование компилятора начиная с первой страницы стандарта(много для себя откроешь! знаю по себе).
Это сообщение отредактировал(а) DEADHUNT - 12.7.2009, 19:07 |
|||
|
||||
beroal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 18.1.2003 Где: Украина Репутация: 1 Всего: 3 |
Что есть «сканер»? |
|||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
||||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
теория компиляции - один из базовых предметов любого инженера разработки ПО.
обычно компиляцию изучают после формальных языков и автоматов. Желательно понимать как устроен современный компилятор. Кроме этого для экспериментов есть несколько готовых инструментов лексического анализа, напр. flex (наследник lex-а) и синтактического анализа, как напр. Bison (наследник YaCC-а). удачи. Это сообщение отредактировал(а) bilbobagginz - 12.7.2009, 19:47 -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Совместные проекты/поиск партнёров" | |
|
Внимание: Этот раздел только для проектов в которых Вы будете выступать в качестве исполнителя! Темы и сообщения, не удовлетворяющие данным правилам, будут удаляться на основании пункта 3 Правил форума!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, Poseidon |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Совместные проекты/поиск партнёров | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |