]]>
]]>
  • Новости
  • Темы
    • Экономика
    • Здоровье
    • Авто
    • Наука и техника
    • Недвижимость
    • Туризм
    • Спорт
    • Кино
    • Музыка
    • Стиль
  • Спецпроекты
  • Телевидение
  • Знания
    • Энциклопедия
    • Библия
    • Коран
    • История
    • Книги
    • Наука
    • Детям
    • КМ школа
    • Школьный клуб
    • Рефераты
    • Праздники
    • Гороскопы
    • Рецепты
  • Сервисы
    • Погода
    • Курсы валют
    • ТВ-программа
    • Перевод единиц
    • Таблица Менделеева
    • Разница во времени
Ограничение по возрасту 12
KM.RU
Наука и техника
Главная → Наука и техника → Технологии
Версия для печати
  • Новости
  • В России
  • В мире
  • Экономика
  • Наука и техника
    • Наука
    • Технологии
    • История
    • Энциклопедия
    • Игры
  • Недвижимость
  • Авто
  • Туризм
  • Здоровье
  • Спорт
  • Музыка
  • Кино
  • Стиль
  • Телевидение
  • Спецпроекты
  • Книги
  • Telegram-канал

Программирование: Что такое компилятор и зачем он нужен

15:22 13.03.2020
Фото с сайта Pixabay.com

Компилятор — это программа, которая переводит написанный человеком код в машинный, то есть понятный компьютеру 

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

Что происходит, когда компилируется код?

Сложность компиляции зависит от синтаксиса языка программирования и от того, насколько сильно этот язык использует абстракции. Например, компилятор для C гораздо проще, чем для C++ или C#. Кстати, если вы, вдруг, плохо знаете английский язык, но вам нужно найти ответ на свой технический вопрос, то вам поможет сайт CodeRoad - вопросы/ответы по программированию. Здесь переводят на русский язык самые популярные вопросы со StackOverflow.

Лексический анализ

Сначала компилятор читает все символы исходного кода, затем создает описания для этих символов. Например, код на C++: int A = (B*C) + 15; может быть описан так:
• Тип «int»; значение «C»; равно; левая скобка; значение «A»; умножить; значение «B»; правая скобка; плюс; литерал «15».

Синтаксический анализ

Далее идет синтаксический анализ, который использует определенные грамматические правила и определяет, является ли ввод действительным или нет.

Если значения «B» и «C» были раннее объявлены и находятся в доступной области видимости, компилятор скажет:

• «B»: объявленный идентификатор.
Если переменные были объявлены, но им не присвоено значение, то компилятор выдаст предупреждение:
• Локальное значение «B» использовано без инициализации.

Не игнорируйте предупреждения компилятора. Ошибки, приводящие к возникновению предупреждений, могут сломать ваш код.

Один проход или два?

Некоторые языки имеют компиляторы, которые читают код только один раз. Pascal — один из таких языков. Другие требуют минимум двух проходов. Это происходит из-за того, что в них вы можете предварительно объявить классы и функции, но не описывать их.

Так, например, можно сделать в С++. Компилятору неизвестно, сколько памяти нужно классу, поэтому, когда он доходит до его описания, он компилирует тело класса, а потом перечитывает исходный код.

Генерация машинного кода

После успешных лексического и синтаксического анализов начинается финальная стадия — генерация машинного кода. Этот процесс еще более сложен на современных процессорах из-за многопоточности.

Скорость скомпилированного кода должна быть максимально возможной. Она может изменяться в зависимости от качества кода и его оптимизации.

Генерация кода — это сложно

Программисты, пишущие компилятор, сталкиваются с множеством проблем. Чтобы ускорить обработку кода они используют:

• Instruction pipelining
• Внутренний кэш

Если все инструкции цикла хранятся в кэше процессора, то цикл выполняет гораздо быстрее, чем когда инструкции приходится извлекать из оперативной памяти. Кэш центрального процессора — это блок памяти, встроенный в чип ЦП. Доступ к кэшу процессора осуществляется в разы быстрее, чем к ОЗУ.

Кэши и очереди

Большинство процессоров имеют функцию предварительной выборки очереди, когда процессор сначала переносит инструкции в кэш, а потом выполняет их. Многие процессоры имеют отдельные части для выполнения таких операций:

• Целочисленная арифметика (целые числа)
• Арифметика с числами с плавающей точкой (дробные числа)

Эти операции часто выполняются параллельно, чтобы ускорить работу кода.

Темы: Технологии, Наука и техника
Расскажите об этом:
0

Подписаться на KM.RU в Telegram

Сообщить об ошибке на km.ru_new@mail.ru

Комментарии читателей Оставить комментарий

]]>
]]>
Выбор читателей
Отдел фруктов Гастронома №2. Декабрь 1956
1 апреля 1953 года в СССР произошло самое масштабное снижение цен
На Ближний Восток прибыл корабль с тысячами морпехов США
Процесс цифровой деградации готовится к запуску
Рязанским компаниям велели выбрать по два-три сотрудника для участия в СВО
]]>
Агрегатор 24СМИ
]]>
Избранное
22 года назад Польша, Чехия и Венгрия вступили в НАТО
«Спасение Америки с точки зрения самих американцев»
«Оказалось, что, взаимодействуя с Россией, Германия богатела, а став, как все – наоборот»
Ксения Емельянова: «Мой личный рекорд учеников достигнут в срок»
Тишин «Толька» (интернет-сингл)
Сергей Бобунец закрепил успех песни «Зачем топтать мою любовь»
Дерусификация и её плоды
Рустэм Султанов «На осколках декабря»
До конституционного признания животных в России — один шаг?
Искусственный дефицит и талоны - главные достижения «перестройки»
Кипелов «Весы Судьбы»
официальный сайт © ООО «КМ онлайн», 1999-2026 О проекте ·Все проекты ·Выходные данные ·Контакты ·Реклама
]]>
]]>
Сетевое издание KM.RU. Свидетельство о регистрации Эл № ФС 77 – 41842.
Мнения авторов опубликованных материалов могут не совпадать с позицией редакции.

Мультипортал KM.RU: актуальные новости, авторские материалы, блоги и комментарии, фото- и видеорепортажи, почта, энциклопедии, погода, доллар, евро, рефераты, телепрограмма, развлечения.

Карта сайта


Подписывайтесь на наш Telegram-канал и будьте в курсе последних событий.



Организации, запрещенные на территории Российской Федерации

Используя наш cайт, Вы даете согласие на обработку файлов cookie. Если Вы не хотите, чтобы Ваши данные обрабатывались, необходимо установить специальные настройки в браузере или покинуть сайт.