Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2008 13:11:05

eden
От:
Зарегистрирован: 2008-09-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Мини-компилятор

Хочу написать свой компилятор на Питоне, но не знаю как сделать преобразование (если можно так сказать) чтобы получить из исходника исполняемый файл, то есть

Исходник: “test.test” (мой синтаксис)

echo “Hello, World”

И при запуске myscript.py “test.test” получаем объектный файл “test.out”, который является исполняемым

У меня есть некие идеи, но они (по моему) не очень эффективные, и громозки:
1. Конвертировать код в Ассемблер и вызвать сборщика (например, nasm)
2. То же самое, только Си

————————————————————
Заранее сорри, если вопрос некорректен
Заранее спасибо!



Офлайн

#2 Сен. 30, 2008 13:34:09

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Мини-компилятор

Если это академическая разработка, то http://ru.wikipedia.org/wiki/Компилятор http://ru.wikipedia.org/wiki/Транслятор
Если нет, то имеет смысл дописать расширение к GCC http://ru.wikipedia.org/wiki/GCC



Отредактировано (Сен. 30, 2008 13:37:05)

Офлайн

#3 Сен. 30, 2008 13:45:56

eden
От:
Зарегистрирован: 2008-09-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Мини-компилятор

Ну там теория, и опять же нету (как сделать преобразование (если можно так сказать) чтобы получить из исходника исполняемый файл)



Офлайн

#4 Сен. 30, 2008 13:56:09

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Мини-компилятор

“Транслятор, который преобразует программы в машинный язык, принимаемый и исполняемый непосредственно процессором, называется компилятором”

Переводишь в машинные инстуркции. Бери каку-нибудь книжку по архитекуре x86 микропроцессоров (могу порекомендовать книжки Шагурина И.И), справочник с командами и вперед =)
З.Ы. Я бы начал с досовских COM файлов - у них заголовки попроще.

З.З.Ы. А вообще - если подход серьезный - я бы всетки рекомендовал обратить внимание на GCC.



Отредактировано (Сен. 30, 2008 13:57:22)

Офлайн

#5 Сен. 30, 2008 13:57:49

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Мини-компилятор

Боюсь, что без знания теории написать свой компллятор не получится.



Офлайн

#6 Сен. 30, 2008 14:00:07

eden
От:
Зарегистрирован: 2008-09-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Мини-компилятор

GCC - исходники шарил (частично), но интересного ни чего не нашел

А по поводе книги по “архитекуре x86 микропроцессоров ” Спасибо
Поисчу сейчас



Офлайн

#7 Сен. 30, 2008 14:01:45

eden
От:
Зарегистрирован: 2008-09-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Мини-компилятор

–> Боюсь, что без знания теории написать свой компллятор не получится.

Согласен



Офлайн

#8 Сен. 30, 2008 14:08:27

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Мини-компилятор

Зря.
“GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков программирования.”
Это можно сказать фремворк для компиляторов. Он 80% работы берет на себя.



Офлайн

#9 Сен. 30, 2008 14:12:09

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Мини-компилятор

Еще могу рекомендовать
http://masterpc.alfaspace.net/books/downloads/aho_seti_ulman_kompilyators/



Отредактировано (Сен. 30, 2008 14:13:23)

Офлайн

#10 Сен. 30, 2008 14:16:17

eden
От:
Зарегистрирован: 2008-09-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Мини-компилятор

shiza, видимо тоже этим занимаешься?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version