Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,342
Завершенные тесты: 1
#1

Первый вопрос из книги вильямса:Что такое компоновка - C++

13.11.2009, 21:32. Просмотров 2260. Ответов 5
Метки нет (Все метки)

что такое компоновка?Я читал в кyиге и понял что компоновка превращает файл срр в obj, так?тогда что такое obj, и почему сразу не cjздать файл *exe?

Добавлено через 24 минуты
и еще у меня вопросик,в чем разница между интерпретатором и компилятором?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2009, 21:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Первый вопрос из книги вильямса:Что такое компоновка (C++):

Вопрос: что такое ключ в списках? - C++
Вопрос: что такое ключ в списках? Код из литературы: Функции вставки и удаления элемента в односвязном списке. /*Функция вставки...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? - C++
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа? - C++
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель? - C++
Что такое хэндлер файла? Что такое файловый указатель?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них - C++
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них пожалуйста.

Первый вопрос о C++ =) - C++
Привет всем форумчанам! Я занялся изучением программирования на C++. И вот появился первый вопрос! Значит так! Скачал я среду Dev...

5
Evg
Эксперт CАвтор FAQ
18374 / 6421 / 441
Регистрация: 30.03.2009
Сообщений: 17,812
Записей в блоге: 28
14.11.2009, 00:38 #2
Цитата Сообщение от МедведЪ Посмотреть сообщение
превращает файл срр в ob
Этот процесс более правильно называется "трансляция", хотя зачастую термин "компиляция" употребляют именно для этого

Файл obj - это файл с кодом, но в котором ещё неизвестны адреса глобальных переменных и функций. Допустим, ты написал код по вызову printf'а, но самой процедуры printf у тебя в коде нет. В объектном файле построится код, где для вызова printf будет стоять операция call, но втом месте, где должен быть адрес printf останется дырка (т.е. нули в нужном количестве) и специальным образом это дырка подсвечивается типа "вот в таком-то месте должен стоять адрес printf". Эта дырка называется relocation (по русски переводят вроде как "перемещение").

Библиотеку на начальном этапе можешь тоже считать как объектный файл. Далее, когда тебе нужно получить исполняемую программу, запускается процесс линковки ("связывания", "компоновки"). В линковку подаются все объектные файлы и библиотеки. Линкер из всех этих файлов лепит исполняемый файл с кодом. Теперь, когда код имеется весь, линкер вычисляет для каждой переменной и функции её адрес, смотрит во всех местах relocation'ы и в нужные места прописывает правильный адрес. Таким образом у тебя получается финальный код, где всё связано друг с другом по адресам.

Но вот на пальцах будет примерно так.

Компилятору на вход подаётся программа на языке, а на выходе получается исполняемый файл, готовый к работе. Интерпретатор на выходе ничего не получает, он простоходит по файлу и по очереди исполняет каждую инструкцию языка. Грубо говоря, если поставлена задача "прочитать текстовый файл и для каждой строки напечатать её длину" то это в какой-то степени вырожденный случай интерпретации. Для каждого исполнения ты запускаешь свою программу (которая выполняет роль интерпретатора) и подаёшь ей на вход текстовый файл (который выполняет роль текста программы)
1
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,342
Завершенные тесты: 1
14.11.2009, 09:09  [ТС] #3
Цитата Сообщение от Evg Посмотреть сообщение
Грубо говоря, если поставлена задача "прочитать текстовый файл
может это как то глупо,но может это build?просто проверяет код
0
Evg
Эксперт CАвтор FAQ
18374 / 6421 / 441
Регистрация: 30.03.2009
Сообщений: 17,812
Записей в блоге: 28
14.11.2009, 11:32 #4
"это" это что?
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,342
Завершенные тесты: 1
14.11.2009, 12:05  [ТС] #5
Цитата Сообщение от Evg Посмотреть сообщение
это" это что?
то что я процитировал

Добавлено через 50 секунд
интерпретатор нужен для того что бы грубо говоря прочитать текстовой файл,я и говорю,это Build?
0
Evg
Эксперт CАвтор FAQ
18374 / 6421 / 441
Регистрация: 30.03.2009
Сообщений: 17,812
Записей в блоге: 28
14.11.2009, 12:14 #6
Нет. Built - это процесс компиляции (т.е. преобразование исходника в самостоятельный бинарный файл). Дальше твой бинарный файл будет работать без компилятора и без исходника - т.е. действительно самостоятельный исполняемый файл

Чтобы запустить что-то на интерпретаторе, тебе всегда нужно иметь рядом саму программу-интерпретатор
0
14.11.2009, 12:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2009, 12:14
Привет! Вот еще темы с ответами:

Шифр Вильямса - C++
Здравствуйте. Такой вопрос - слышал ли кто что-нибудь о шифровании методом Вильямса? Препод задал написать программу, которая будет...

Книги по С++ (что читать после книги Дейтела "Как программировать на С++") - C++
Добрый день господа!!! Я от можно сказать дочитываю Дейтела "Как программировать на С++" 5 издание, и от думаю какую следующую книгу...

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере - C++
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном из cpp файлов(их несколько). Можно ли, как-то, использовать...

Что такое перегрузка оператора? Что у меня в коде за ошибка? - C++
Что же я написал?? Что оно не компилится? Что значит error C2275: Superclass: недопустимое использование этого типа в качестве выражения ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.