Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2010, 11:57   #1
Яр|/||< (^_^)
LosYear
Форумчанин
 
Аватар для Яр|/||< (^_^)
 
Регистрация: 19.06.2009
Сообщений: 695
По умолчанию Из кода в exe

Народ мне бы хотелось внести немного ясности в процесс код...exe. Я хочу спросить через что проходят исходные коды, чтобы стать exe?
Там IDE->Компилятор, а что дальше???
Конечно простите за глупый вопрос. Я просто в этот процесс никогда не углублялся.
Яр|/||< (^_^) вне форума Ответить с цитированием
Старый 27.03.2010, 12:05   #2
VovanZ
Веб-разработчик
Форумчанин
 
Регистрация: 23.05.2009
Сообщений: 279
По умолчанию

Через девять кругов Ада.Через компилятор. И всё. Компилятор делает из высокоуровнего кода низкоуровневые машинные коды, которые исполняются процессором.

Последний раз редактировалось VovanZ; 27.03.2010 в 12:11.
VovanZ вне форума Ответить с цитированием
Старый 27.03.2010, 12:20   #3
Яр|/||< (^_^)
LosYear
Форумчанин
 
Аватар для Яр|/||< (^_^)
 
Регистрация: 19.06.2009
Сообщений: 695
По умолчанию

Понятно я то думал, что там компилятор потом ещё "девять кругов ада", а там только компилятор. Спасибо.

Последний раз редактировалось Яр|/||< (^_^); 27.03.2010 в 12:22.
Яр|/||< (^_^) вне форума Ответить с цитированием
Старый 27.03.2010, 12:21   #4
VovanZ
Веб-разработчик
Форумчанин
 
Регистрация: 23.05.2009
Сообщений: 279
По умолчанию

Цитата:
Сообщение от Яр|/||< (^_^) Посмотреть сообщение
А с++. Я запихал файл в компилятор он, скомпилировал в какой-то *.i это что значит? А делфи/паскаль сразу в исполняемый.
Зависит от компилятора. Читайте мануал к конкретному компилятору.
VovanZ вне форума Ответить с цитированием
Старый 27.03.2010, 12:23   #5
grenles
минимакс
Участник клуба
 
Аватар для grenles
 
Регистрация: 11.06.2008
Сообщений: 1,143
По умолчанию

Ну если тебе совсем лень читать книги.
Приблизительно происходит так:


1. Синтаксический анализ - на ошибки конструкций, не соответствующих правилам языка, типа запятую не там влепил, или точка не там.

2. Семантический анализ - это когда проверяется. чтобы цикл "пока-то" и конструкция "если-то" случайно не пересеклись из-за того ты не там влепил "end"

3. Потом компилятор делает различные сложные вещи - типа таблицы переменных, различные подстановки, как-то включение файлов заголовков в текст и прочее. В итоге получается некий псевдокод, который уже можно перевести в ассемблер-машинные команды.

4. Где-то на уровне перевода во внутреннее представление и на уровне представления в псевдокоде происходит так называемыя "оптимизация" кода, с целью убрать "лишние" команды

5. А далеее, скорее всего по некоторой таблице, и по неким стандартным схемам для различных конструкций типа "вызов", "переход", "сравнение" и прочее - подставляются в файл машинные команды.
В принципе - 4 и 5 шаг - уже машинно зависимые и платформо зависимые. То есть, не меняя 1-3 шагов (их может быть больше), а только переписав оптимизацию и подстановку - делают компиляторы для Юникса, Винды, МакОС и прочее.

Вот где-то так по моим представлениям и если тебе не охота читать умные книжки.
и это пройдет...
grenles вне форума Ответить с цитированием
Старый 27.03.2010, 12:23   #6
Яр|/||< (^_^)
LosYear
Форумчанин
 
Аватар для Яр|/||< (^_^)
 
Регистрация: 19.06.2009
Сообщений: 695
По умолчанию

Всё разобрался я просто вместо компилятора запихал в другой файл.
Яр|/||< (^_^) вне форума Ответить с цитированием
Старый 27.03.2010, 12:23   #7
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

В некоторых языках вроде так:
Translitor-Compiler(из исходников получается объектный файл)-Linker(преобразовывает объектный файл в исполняемый)-Exe
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось russian-stalker; 27.03.2010 в 13:05.
russian-stalker вне форума Ответить с цитированием
Старый 27.03.2010, 12:27   #8
Яр|/||< (^_^)
LosYear
Форумчанин
 
Аватар для Яр|/||< (^_^)
 
Регистрация: 19.06.2009
Сообщений: 695
По умолчанию

В Embarcadero всё проще компилятор-> exe, но наверное linker в самом компиляторе содержиться.
Яр|/||< (^_^) вне форума Ответить с цитированием
Старый 27.03.2010, 12:29   #9
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от VovanZ Посмотреть сообщение
Через компилятор. И всё.
Неверно. Про Редактор Связей ("линкер") забыли.
Vago вне форума Ответить с цитированием
Старый 27.03.2010, 12:52   #10
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Яр|/||< (^_^) Посмотреть сообщение
В Embarcadero всё проще компилятор-> exe, но наверное linker в самом компиляторе содержиться.
Нет. Все тоже самое. + забыли про транслятор (кто ваш высокоуровневый язык будет переводить в asm ?). Т.е.

Высок. код (C/C++, Object Pascal...) >> ASM >> OBJ >> PE (Exe, Dll....)....

Все таки так наиболее логичен и верен процесс сборки.
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Восстановление исходного кода из .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