Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Разработаем компайлер!  (Прочитано 12857 раз)
0 Пользователей и 1 Гость смотрят эту тему.
compiler-dev
Гость
« : 01-05-2006 19:23 » 

Привет!

Очень интересует тема разработки
- компилятора
- ассемблера
- линкера
- дисассемблера
- хекс редактора
- анализптора exe файлов

Хотелось бы об этом побольше узнать
Может - Вас заинтересует это тема?
Или - хотя бы поскажете - где копать?
Хотелось бы стартовать с уровня чайника и двигаться дальше...

Спасибо
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 01-05-2006 19:55 » 

хм Улыбаюсь это всё уже существует, ищи иную тему для реализации Улыбаюсь
Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #2 : 01-05-2006 20:08 » 

Если с уровня чайника. Тогда вот списочек отсортированный по степени легкости. Самый легкая задача на самом верху.
1) анализатор exe файлов
2) Hex редактор
3) ассемблер
4) Линкер
5) Компилятор
6) ДеАсемблер 
Для анализатора просто нужно, чтобы ты разобрался в достаточно хорошой степени PE стандартом. Уже затем составить прогу для чтения и прасматривания содержимого не составит труда.
А вообше, я бы рекомендовал бы для начала порешать программистские задачи. Чтобы набить руку в программирование. Например такая шахматная задача: Поле 8*8 клеток. Пользователь вводит координаты, где должен стоять конь. Задача программы, найти траекторию прохождения коня, так чтобы он обошел все поле и при этом побывал на каждой клетке только один раз. Самое легкое решение. Есть некоторые траектории, которые цикличны. Можно в принципе забить такую траекторию в программу и показывать только ее. Но такое решение не интересно. Нужно сделать, чтобы программа сама решала путь. Я в свое время делал такую программу. Она выдавала ответ буквально за считанные секунды. 
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
compiler-dev
Гость
« Ответ #3 : 02-05-2006 08:35 » 

Если с уровня чайника. Тогда вот списочек отсортированный по степени легкости. Самый легкая задача на самом верху.
1) анализатор exe файлов
2) Hex редактор
3) ассемблер
4) Линкер
5) Компилятор
6) ДеАсемблер 
Для анализатора просто нужно, чтобы ты разобрался в достаточно хорошой степени PE стандартом. Уже затем составить прогу для чтения и прасматривания содержимого не составит труда.
А вообше, я бы рекомендовал бы для начала порешать программистские задачи. Чтобы набить руку в программирование. Например такая шахматная задача: Поле 8*8 клеток. Пользователь вводит координаты, где должен стоять конь. Задача программы, найти траекторию прохождения коня, так чтобы он обошел все поле и при этом побывал на каждой клетке только один раз. Самое легкое решение. Есть некоторые траектории, которые цикличны. Можно в принципе забить такую траекторию в программу и показывать только ее. Но такое решение не интересно. Нужно сделать, чтобы программа сама решала путь. Я в свое время делал такую программу. Она выдавала ответ буквально за считанные секунды. 
Cпасибо за ответ
Вообще-то простейший Hex редактор я как-то написал:
http://sourceforge.net/projects/ima2
IMA Simple command-line editor of binary files (images)

По поводу
1) анализатор exe файлов
Посоветуете хорошую литературу по формату PE?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 02-05-2006 12:00 » 

Разработка компилятора - это из любопытства, задание в вузе или какое-то серьёзное намерение?

Если серьёзно, то, во-первых, в одиночку не справиться, во-вторых, это работа долгая, зависящая от особенностей исходного и целевого языков, содержащая массу "подводных камней", и до сих пор являющаяся областью научных исследований, в-третьих, у нашей "компиляторной" группы настольной книжкой является двухтомник А. Ахо, Дж. Ульман "Теория синтаксического анализа, перевода и компиляции", также может пригодиться книжка А. Ахо, Р. Сети, Дж. Ульман "Компиляторы. Принципы, технологии, инструменты." (обе есть в djvu-формате)
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
compiler-dev
Гость
« Ответ #5 : 02-05-2006 12:04 » 

Разработка компилятора - это из любопытства, задание в вузе или какое-то серьёзное намерение?

Если серьёзно, то, во-первых, в одиночку не справиться, во-вторых, это работа долгая, зависящая от особенностей исходного и целевого языков, содержащая массу "подводных камней", и до сих пор являющаяся областью научных исследований, в-третьих, у нашей "компиляторной" группы настольной книжкой является двухтомник А. Ахо, Дж. Ульман "Теория синтаксического анализа, перевода и компиляции", также может пригодиться книжка А. Ахо, Р. Сети, Дж. Ульман "Компиляторы. Принципы, технологии, инструменты." (обе есть в djvu-формате)

djvu - это кто?
Дадите ссылки?

А. Ахо, Р. Сети, Дж. Ульман "Компиляторы. Принципы, технологии, инструменты." - в процессе прочтения
А. Ахо, Дж. Ульман "Теория синтаксического анализа, перевода и компиляции" - надо будет отловить

И как у Вашей группы успехи?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 02-05-2006 13:23 » 

Цитата: compiler-dev
Дадите ссылки?
http://club.shelek.ru Файлы/Книги/Теория - там найдёшь.

Цитата: compiler-dev
И как у Вашей группы успехи?
Я в эту группу не вхожу. А что такое "успехи" в данном контексте?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 02-05-2006 13:33 » 

Цитата
1) анализатор exe файлов
Посоветуете хорошую литературу по формату PE?
Покопайся на сайте http://www.wasm.ru/. Я в свое время читал там пару статей на эту тему.

Цитата
djvu - это кто?
Дадите ссылки?
Это один из основных форматов, в которорых сейчас идут отсканированные книги в интернете. Вообше сушествует несколько читалок данного формата. Вот одна из них http://opendjvu.webhost.ru
« Последнее редактирование: 02-05-2006 13:35 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
compiler-dev
Гость
« Ответ #8 : 02-05-2006 13:57 » 

Finch
Спасибо

dimka
Спасибо
Цитата
Разработка компилятора - это из любопытства, задание в вузе или какое-то серьёзное намерение?
В основном - желание розобраться как ОНО работает
Цитата
А что такое "успехи" в данном контексте?
Работающая програмка с открытым кодом в котором не очень сложно розобраться
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 02-05-2006 15:08 » 

Цитата
Работающая програмка с открытым кодом в котором не очень сложно розобраться
Нет, это большой комплекс, включающий компилятор, IDE, библиотеки под определённую аппаратную платформу и множество всяких дополнительных вещей - закрытая многолетняя разработка для Samsung. Во-первых, я с ней не познакомлю в силу её закрытости, во-вторых, разобраться в ней очень сложно, т.к. там исходного кода на сотни Мб (не считая документации), в-третьих, это поле научных исследований, а для вникания, нужна подготовка.

Если "для себя", тогда читай книжки и экспериментируй.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
compiler-dev
Гость
« Ответ #10 : 02-05-2006 15:12 » 

Цитата
Работающая програмка с открытым кодом в котором не очень сложно розобраться
Нет, это большой комплекс, включающий компилятор, IDE, библиотеки под определённую аппаратную платформу и множество всяких дополнительных вещей - закрытая многолетняя разработка для Samsung. Во-первых, я с ней не познакомлю в силу её закрытости, во-вторых, разобраться в ней очень сложно, т.к. там исходного кода на сотни Мб (не считая документации), в-третьих, это поле научных исследований, а для вникания, нужна подготовка.

Если "для себя", тогда читай книжки и экспериментируй.
Ok.
Спасибо .
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #11 : 02-05-2006 15:29 » 

Вот посмотри. Тут выложены исходники для языка О2М http://www.softcraft.ru/ppp/download.shtml#src
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
compiler-dev
Гость
« Ответ #12 : 02-05-2006 15:37 » 

Спасибо!!!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines