262
15. Назад в будущее
ВВЕДЕНИЕ
Могло ли действительно пройти четыре года с тех пор, как я написал четырнадцатую
главу этой серии? Действительно ли возможно, что шесть долгих лет прошли с тех пор
как я начал ее? Забавно, как летит время когда вы весело его проводите, не так ли?
Я не буду тратить много времени на извинения; просто подчеркну, что это случилось, и
приоритеты меняются. За четыре года, начиная с четырнадцатой главы, я сумел стать
уволенным, развестись, получить нервный срыв, начал новую каръеру как писатель,
начал другую как консультант, двигался, работал на две системы реального времени и
вырастил четырнадцать птенцов, трех голубей, шесть опоссумов и утку. Некоторое время
синтаксический анализ исходного кода был не слишком высоко в моем списке
приоритетов. Не написал ни одной вещи бесплатно, только за деньги. Но я пытаюсь быть
верным и понимаю и чувствую свою ответственность перед вами, читателями, закончить
то, что начал. Как сказала черепаха в одной из старых историй моего сына, я возможно
медленная, но я надежная. Я уверен, что есть люди, стремящиеся увидеть последнюю
катушку этого фильма, и я собираюсь дать им ее. Так что, если вы один из тех, кто ждал
более или менее терпеливо, что из этого получится, благодарю за ваше терпение. Я
приношу извинения за задержку. Давайте продолжим.
НОВОЕ НАЧАЛО, СТАРОЕ НАПРАВЛЕНИЕ
Подобно многим другим вещам, языки программирования и стили програмирования
изменяются со временем. В 1994 году кажется немного анахроничным программировать
на Turbo Pascal, когда остальной мир кажется сходит с ума по C++. Также кажется
немного странным программировать в классическом стиле, когда остальной мир
переключился на объектно-ориентированные методы. Однако, несмотря на
четырехлетнюю паузу, было бы слишком тяжело сейчас переключиться, скажем, на C++ с
объектной ориентацией. Во всяком случае, Pascal все еще не только мощный язык
программирования (фактически больше, чем когда либо), но это и замечательная среда
для обучения. Си - известно трудный для чтения язык... он часто был обвиняем, наряду с
Forth, как "язык только для записи". Когда я программирую на C++ я трачу по крайней
мере 50% своего времени на борьбу с синтаксисом языка а не с концепциями.
Сбивающие с толку "&" или "*" могут не только изменить функционирование программы,
но также и ее правильность. Наоборот, код Паскаля обычно совершенно ясен и прост для
чтения даже если вы не знаете языка. Что вы видите, то вы почти всегда и получите, и мы
можем сконцентрироваться на концепциях, а не тонкостях реализации. Я сказал в начале,
что целью этой обучающей серии была не генерация самого быстрого в мире
компилятора, а изучение основ технологии компиляции, с наименьшими затратами
времени на борьбу с синтаксисом языка или другими аспектами реализации
программного обеспечения. Наконец, так как многое из того, что мы делаем в этом курсе,
составляет программное экспериментирование, важно иметь компилятор и связанную с
ним среду, который компилирует быстро и без суеты. По моему мнению наиболее
значимым мерилом времени при разработке программного обеспечения является
скорость цикла редактирование/компиляция/тестирование. В этом отделе Turbo Pascal -
король. Скорость компиляции блестяще быстрая, и продолжает становиться быстрее с
каждым выпуском (как им это удается?). Несмотря на крупные усовершенствования в
быстродействии компиляции C за последние годы, даже Borland-овский самый быстрый
компилятор C/C++ все еще не сравним с Turbo Pascal. Далее, редактор, встроенный в его