compiler-dev
Гость
|
|
« : 01-05-2006 19:23 » |
|
Привет!
Очень интересует тема разработки - компилятора - ассемблера - линкера - дисассемблера - хекс редактора - анализптора exe файлов
Хотелось бы об этом побольше узнать Может - Вас заинтересует это тема? Или - хотя бы поскажете - где копать? Хотелось бы стартовать с уровня чайника и двигаться дальше...
Спасибо
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #1 : 01-05-2006 19:55 » |
|
хм это всё уже существует, ищи иную тему для реализации
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
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/ima2IMA Simple command-line editor of binary files (images) По поводу 1) анализатор exe файлов Посоветуете хорошую литературу по формату PE?
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #4 : 02-05-2006 12:00 » |
|
Разработка компилятора - это из любопытства, задание в вузе или какое-то серьёзное намерение?
Если серьёзно, то, во-первых, в одиночку не справиться, во-вторых, это работа долгая, зависящая от особенностей исходного и целевого языков, содержащая массу "подводных камней", и до сих пор являющаяся областью научных исследований, в-третьих, у нашей "компиляторной" группы настольной книжкой является двухтомник А. Ахо, Дж. Ульман "Теория синтаксического анализа, перевода и компиляции", также может пригодиться книжка А. Ахо, Р. Сети, Дж. Ульман "Компиляторы. Принципы, технологии, инструменты." (обе есть в djvu-формате)
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
compiler-dev
Гость
|
|
« Ответ #5 : 02-05-2006 12:04 » |
|
Разработка компилятора - это из любопытства, задание в вузе или какое-то серьёзное намерение?
Если серьёзно, то, во-первых, в одиночку не справиться, во-вторых, это работа долгая, зависящая от особенностей исходного и целевого языков, содержащая массу "подводных камней", и до сих пор являющаяся областью научных исследований, в-третьих, у нашей "компиляторной" группы настольной книжкой является двухтомник А. Ахо, Дж. Ульман "Теория синтаксического анализа, перевода и компиляции", также может пригодиться книжка А. Ахо, Р. Сети, Дж. Ульман "Компиляторы. Принципы, технологии, инструменты." (обе есть в djvu-формате)
djvu - это кто? Дадите ссылки? А. Ахо, Р. Сети, Дж. Ульман "Компиляторы. Принципы, технологии, инструменты." - в процессе прочтения А. Ахо, Дж. Ульман "Теория синтаксического анализа, перевода и компиляции" - надо будет отловить И как у Вашей группы успехи?
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #6 : 02-05-2006 13:23 » |
|
Дадите ссылки? http://club.shelek.ru Файлы/Книги/Теория - там найдёшь. И как у Вашей группы успехи? Я в эту группу не вхожу. А что такое "успехи" в данном контексте?
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Finch
Спокойный
Администратор
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
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #9 : 02-05-2006 15:08 » |
|
Работающая програмка с открытым кодом в котором не очень сложно розобраться Нет, это большой комплекс, включающий компилятор, IDE, библиотеки под определённую аппаратную платформу и множество всяких дополнительных вещей - закрытая многолетняя разработка для Samsung. Во-первых, я с ней не познакомлю в силу её закрытости, во-вторых, разобраться в ней очень сложно, т.к. там исходного кода на сотни Мб (не считая документации), в-третьих, это поле научных исследований, а для вникания, нужна подготовка. Если "для себя", тогда читай книжки и экспериментируй.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
compiler-dev
Гость
|
|
« Ответ #10 : 02-05-2006 15:12 » |
|
Работающая програмка с открытым кодом в котором не очень сложно розобраться Нет, это большой комплекс, включающий компилятор, IDE, библиотеки под определённую аппаратную платформу и множество всяких дополнительных вещей - закрытая многолетняя разработка для Samsung. Во-первых, я с ней не познакомлю в силу её закрытости, во-вторых, разобраться в ней очень сложно, т.к. там исходного кода на сотни Мб (не считая документации), в-третьих, это поле научных исследований, а для вникания, нужна подготовка. Если "для себя", тогда читай книжки и экспериментируй. Ok. Спасибо .
|
|
|
Записан
|
|
|
|
|
compiler-dev
Гость
|
|
« Ответ #12 : 02-05-2006 15:37 » |
|
Спасибо!!!
|
|
|
Записан
|
|
|
|
|