![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
LosYear
Форумчанин
Регистрация: 19.06.2009
Сообщений: 695
|
![]()
Народ мне бы хотелось внести немного ясности в процесс код...exe. Я хочу спросить через что проходят исходные коды, чтобы стать exe?
Там IDE->Компилятор, а что дальше??? Конечно простите за глупый вопрос. Я просто в этот процесс никогда не углублялся. ![]() |
![]() |
![]() |
![]() |
#2 |
Веб-разработчик
Форумчанин
Регистрация: 23.05.2009
Сообщений: 279
|
![]()
Через девять кругов Ада.Через компилятор. И всё. Компилятор делает из высокоуровнего кода низкоуровневые машинные коды, которые исполняются процессором.
Последний раз редактировалось VovanZ; 27.03.2010 в 12:11. |
![]() |
![]() |
![]() |
#4 |
Веб-разработчик
Форумчанин
Регистрация: 23.05.2009
Сообщений: 279
|
![]() |
![]() |
![]() |
![]() |
#5 |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
![]()
Ну если тебе совсем лень читать книги.
Приблизительно происходит так: 1. Синтаксический анализ - на ошибки конструкций, не соответствующих правилам языка, типа запятую не там влепил, или точка не там. 2. Семантический анализ - это когда проверяется. чтобы цикл "пока-то" и конструкция "если-то" случайно не пересеклись из-за того ты не там влепил "end" 3. Потом компилятор делает различные сложные вещи - типа таблицы переменных, различные подстановки, как-то включение файлов заголовков в текст и прочее. В итоге получается некий псевдокод, который уже можно перевести в ассемблер-машинные команды. 4. Где-то на уровне перевода во внутреннее представление и на уровне представления в псевдокоде происходит так называемыя "оптимизация" кода, с целью убрать "лишние" команды 5. А далеее, скорее всего по некоторой таблице, и по неким стандартным схемам для различных конструкций типа "вызов", "переход", "сравнение" и прочее - подставляются в файл машинные команды. В принципе - 4 и 5 шаг - уже машинно зависимые и платформо зависимые. То есть, не меняя 1-3 шагов (их может быть больше), а только переписав оптимизацию и подстановку - делают компиляторы для Юникса, Винды, МакОС и прочее. Вот где-то так по моим представлениям и если тебе не охота читать умные книжки.
и это пройдет...
|
![]() |
![]() |
![]() |
#7 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
В некоторых языках вроде так:
Translitor-Compiler(из исходников получается объектный файл)-Linker(преобразовывает объектный файл в исполняемый)-Exe
pushl $0x18E3DF6B
call ICQ Последний раз редактировалось russian-stalker; 27.03.2010 в 13:05. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]() |
![]() |
![]() |
![]() |
#10 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]() Цитата:
Высок. код (C/C++, Object Pascal...) >> ASM >> OBJ >> PE (Exe, Dll....).... Все таки так наиболее логичен и верен процесс сборки. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Восстановление исходного кода из .exe файла. | Mutagena | Помощь студентам | 3 | 06.12.2009 15:43 |
Передача строки exe (с формой (API)) ↔ exe (форма скрыта) | Alex Cones | Общие вопросы Delphi | 16 | 04.10.2009 15:26 |
чтение из одного exe файла, и запись в другой exe | inndim | Общие вопросы Delphi | 2 | 04.02.2009 15:23 |
Внедрение кода в EXE | prizrak1390 | Общие вопросы Delphi | 16 | 07.05.2008 08:10 |
Выдернуть куски кода из html-кода | trafbite | Помощь студентам | 7 | 18.08.2007 13:51 |