Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разработка компиляторов.

Ответить
Настройки темы
Разработка компиляторов.

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


У меня чейчас в голове (и частично на диске) крутится идея сделать компилятор Visual Basic Script... В процессе написания сего компилера, у меня возникло всего три проблеммы:
  1. VBS язык безтиповый. Я это поборол просто -- ввёл новый оператор 'As тип. Пока помогает. Потом введу полноценную дедукцию типа, это не есть проблемма.
  2. А проблемма, в том что у меня, по причине малого опыта построения компиляторов, нет практичесски никакой документации... Т.е. все, даже базовые конструкции, я вывожу сам.
  3. Ну и наконец, кто-нибудь знает где можно найти набор комант защщённого режим в подобном виде:
    [pre]mov eax, ebx * *01 23 45 67
    mov ebx, eax * *FE DC BA 98
    итд[/pre]
    ? А то сейчас я это делаю через жо.... заднее место (reverse engineering) Т.е. я сначало пишу нужный код на асме, затем компилю насмом, и смотрю на результат в Отладчике / декомпилере / hex редакторе

-------
http://ivank.ru


Отправлено: 09:10, 31-01-2002

 

Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


ivank
У нас в МФТИ, помнится, были дисциплины по реализации языков программирования. Из всей литературы, что советовалась, навскидку помню только книгу авторов Ахо и Ульман (название забыл) + еще труды наших препов. Если тебя интересует что-то менее академическое, могу поискать, но я так понял, у тебя проблемы с описанием грамматики языка для компилятора?

По 3-му. Вообще-то серьезная книга по асму должна писать машинные коды для команд (они там даже ведь по длине внутри одной команды различаются). Вот у меня в Питере Абеле (в красном таком и в толстом) это все есть.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 09:22, 31-01-2002 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


vasketsov
С грамматикой как раз проблем нет. Я свой клон Spirit написал, он не такой мощный, зато его MSVC компиляет.

Проблеммы как раз с тем что во что компиляется. Особенно со stack unwinding -- у меня есть собственная, но очень кривая реализация...

Цитата:
Вообще-то серьезная книга по асму должна писать машинные коды для команд
У меня серьёзнах книг по асму нет -- я на нём ничего серьёзного в жизни не писал...

-------
http://ivank.ru


Отправлено: 10:41, 31-01-2002 | #3


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Для получения кодов по команде могу предложить такое действо. Компилишь бинарник, куда руками пишешь то, что надо. После этого открываешь его HEXEDIT'ом (если правильно помню), он там умеет команды и коды показывать.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 11:13, 31-01-2002 | #4


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


vasketsov
да, я с помощью hiew смотрю пока... Но это жутко неудобно (много комманд нужно

-------
http://ivank.ru


Отправлено: 11:39, 31-01-2002 | #5


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Всем спасибо... Я нашёл решение проблеммы -- взял исходник другого (очень простого, и даже несоответствующего стандарту C) компилятора, и довольно таки немаленькую часть кодогенератора сейчас передираю к себе. Компилятор русский -- "Странник -- Модула-Си-Паскаль"... Сам компилятор ИМХО очень плох. Хотя он компактен и быстр. Но у него есть огромный недостаток -- стандарту C он не соответвует, а ни паскаля, ни Модулы я не знаю...

Добавлено:

Хотелось бы добавить -- нашёл хороший ресурс о построении трансляторов -- "Компиляторы: принципы, методы и средства разработки"

-------
http://ivank.ru


Отправлено: 19:16, 01-02-2002 | #6


Пользователь


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


По поводу пункта 3.
А если сделать файл листинга программы? В TASM-е ключом /l делается и получается как раз в том виде как ты хочешь, правда я не уверен, что точно так-же делает NASM.

Отправлено: 01:30, 04-03-2002 | #7


изверг


Сообщения: 39
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


вот гемморой понапридумывали. в MSVC _asm command. потом в debug окне смотришь байтики (надо это в опция вклюцить - Sjow Code Bytes)
а построение комманд- далеко не линейное - зависит от того - используются регистры, память. какие операнды - скачай pdf с АМД на который я тебе давал ссылку - там все команды, в том числе и SSE расписаны - такты, последовательности байт, спариваемость и пр.

-------
RTFM, RTFM и потом опять RTFM
http://vudz.tk


Отправлено: 14:43, 04-03-2002 | #8


Аватара для Guest

Guest


Профиль | Цитировать


Подскажите пожалуста где можна скачать хорошый учебник по написанию транслятора?

Отправлено: 06:07, 08-10-2003 | #9

MikHaker


Сообщения: n/a

Профиль | Цитировать


Как можно сделать Компилятор

Добавлено:

Как можно сделать Компилятор на Visual Basic 6.0

Отправлено: 19:54, 30-01-2004 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разработка компиляторов.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие БД - Разработка СУБД lxa85 Программирование и базы данных 1 18-11-2008 01:38
Разработка ПО под UNIX relates Программирование в *nix 0 13-08-2008 10:21
Теория - Разработка сайтов Morgan35 Вебмастеру 2 24-07-2008 01:54
не совпадают версии компиляторов ядра и модуля voitalex Общий по Linux 10 16-02-2004 07:35
Разработка ПО TEHb Программирование и базы данных 2 11-12-2002 14:32




 
Переход