Как компилятор узнает тип переменных в Pascal/Delphi

При подготовки машинного кода программы компилятор просматривает текст и ищет переменные и в последствии отводятся места в оперативной памяти компьютера. В это время создается таблица сопоставления символьных адресов (имя переменной) и числовых адресов (номера ячеек памяти, где будут храниться значения).

Компиляторы разных языков программирования имеют разные подходы программирования. Как правило они разделены на следующие направления: щедрый и скупой, демократический и академический.

Скупой и академический – более ранние методы распознавания в языках АЛГОЛ-60. Принцип синтаксиса заключался в том, что переменные и типы этих переменных должны были указываться в начале программы. Отличный пример этому язык Паскаль (Pascal) и в последствии система Дельфи (Delphi). Этот метод распознавания переменных требовал строгой дисциплины от программиста.

Демократичный метод распознавания типа переменных начался с языка Fortran. Суть заключалось в том, что было реализовано оригинальное решение искать все переменные (идентификаторы), которые начинаются с букв I, J, K, L, M, N – имеют целые значения, а остальные принимают действительные значения. Пример: если программисту нужны целые числа, то он их называл – metka, nomer и так далее, действительные приходилось называть как dlina, radius и т. п. Для создания современной сети Вам потребуется 3g маршрутизатор, который обеспечит работу в сети сразу нескольких утсройств.

Все это было актуально, когда компьютер имел мало оперативной памяти. В настоящее время у каждого компьютера есть необходимое количество оперативной памяти, но тем не менее, такие языки, как Pascal и С++, постоянно напоминают нам о том, что каждая переменная должна быть заранее объявлена. Это сделано для того, чтобы заставить программиста лишний раз подумать. Кстати, это бывает удобно, если в программном коде одна и та же переменная встречается много раз. При опечатке ввода этой переменной в теле программы компилятор выведет ошибку.

Комментирование и размещение ссылок запрещено.