Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
http.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.34 Mб
Скачать

Компиляторы против интерпретаторов

Термины компилятор и интерпретатор описывают способ, с помощью которого выполняется программа. Теоретически любой язык программирования может быть или компилятором, или интерпретатором, но некоторые языки обычно являются либо компиляторами, либо интерпретаторами. Например, Бейсик — обычно интерпретатор, а С — обычно компилятор. Способ, с помощью которого программа выполняется, не определяется языком программирования, на котором она написана. Интерпретаторы и компиляторы — это просто сложные программы, оперирующие с исходным кодом.

Интерпретатор построчно читает исходный код программы и выполняет инструкции, содержащиеся в текущей строке, потом переходит к следующей строке. Компилятор читает всю программу и преобразует ее в объектный код, который является такой формой кода, которая может напрямую выполняться компьютером. Объектный код также называется двоичным кодом или машинным кодом. Если программа скомпилирована, то сам исходный код больше не влияет на дальнейшую работу программы.

Когда используется интерпретатор, он должен присутствовать все время для выполнения программы. Например, в традиционном Бейсике необходимо запустить интерпретатор Бейсика, затем загрузить программу и набрать RUN для запуска. Интерпретатор построчно проверит на правильность и выполнит программу. Этот медленный процесс возникает каждый раз при запуске программы. В противоположность этому, компилятор преобразует программу в объектный код, который может напрямую выполняться компьютером. Поскольку компилятор переводит программу только один раз, то все, что необходимо сделать, — это запустить программу, обычно путем простого набора имени. Таким образом, компиляция кода Должна выполняться только один раз, в то время как интерпретация — каждый раз при запуске программы.

Два термина, которые будут часто встречаться, — это время компиляции, которое соответствует событиям, возникающим в процессе компиляции, и время выполнения, которое соответствует событиям, возникающим при выполнении программы. Обычно данные термины встречаются при обсуждении ошибок в фразах «ошибки времени компиляции» и «ошибки времени выполнения».

Вид программ на с

Таблица содержит 32 ключевых слова, образующих синтаксис языка С. Также показано 12 расширенных ключевых слов, добавленных фирмой Borland, которые могут включаться в С-программы. Конечно, использование расширенных ключевых слов приводит к тому, что программа становится непереносимой.

Все ключевые слова С записываются строчными буквами. В С прописные и строчные буквы различаются: else — ключевое слово, a ELSE — нет. Ключевое слово не может быть использовано в каких-либо других целях в С-программах. Таким образом, оно не может служить в качестве имени переменной или функции.

Все С-программы содержат одну или более функций. Единственная функция, которая всегда должна присутствовать, называется main(), и она является первой функцией, получающей управление. В хорошо написанных С-программах main() выделяет суть работы программы. Она содержит вызовы функций. Хотя main() не является частью языка, но, тем не менее, она трактуется как часть. Не следует пытаться использовать main как, например, имя переменной.

Таблица. Список ключевых слов С

32 ключевых слова, определенных в стандарте ANSI С

auto

double

int

struct

break

else

long

switch

case

enum

register

typedef

char

extern

return

union

const

float

short

unsigned

continue

for

signed

void

default

goto

sizeof

volatile

do

if

static

while

Дополнительные ключевые слова, добавленные Borland

asm

_cs

_ds

_es

_ss

cdecl

far

huge

interrupt

near

pascal

_exp6rt

Типичный вид С-программы показан ниже, где функции от f1() до fN() являются функциями пользователя.

Общая форма программы на С

глобальные объявления возвращаемый_тип main(список параметров) {     последовательность операторов } возвращаемый_тип f 1 (список параметров) { последовательность операторов } возвращаемый_тип f2 (список параметров) { последовательность операторов } . . . возвращаемый_тип fN(список параметров) { последовательность операторов }

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]