Книга: Песни о Паскале
Глава 2 Вместо теории
Разделы на этой странице:
Глава 2
Вместо теории
Жаль, что вы не застали компьютеров первых поколений! Тогда они назывались ЭВМ – электронные вычислительные машины, – слово «компьютер» ещё не было в ходу. ЭВМ помещались в залах солидных размеров, – уж машины так машины, было на что посмотреть! Вход в эти дворцы охраняла угрюмая стража, отсекавшая тех, кто не сдал экзамен по так называемой теории. Иначе говоря, чтобы сесть за ЭВМ, надо было сначала изучить язык программирования и сдать экзамен по нему. Это суровое требование объяснялось тем, что на одну машину рвались сотни пользователей. Потому машинное время ценилось на вес золота, – уж если добрался до ЭВМ, так занимайся делом, а не барабань без ума по клавишам!
Теперь не то, и нравы смягчились: вас пускают за компьютер, не экзаменуя по теории. Но значит ли это, что теория не нужна? — нет. Однако изучать теорию приятней и полезней на практике: мы будем создавать работающие программы. Много программ. Вижу, как вы прыгнули за компьютер и в нетерпении потираете ладошки. Ой, как я вас понимаю! Но ради будущих успехов потерпите до следующей главы. Сейчас я приоткрою завесу тайны, о которой так загадочно молчат взрослые. Не осознав некоторых вещей, невозможно двигаться дальше.
Миф о думающих машинах
Миф – это красивая выдумка, сказка. Компьютеры породили миф о думающих машинах. Ну как отказать в интеллекте этим чудесным созданиям? Восхищение не искушенного в компьютерах человека понятно, но порой приводит к недоразумениям. Вот слышу в новостях: в таком то аэропорту остановлены полеты из-за сбоя управляющих компьютеров. Вероятно, сами компьютеры здесь ни при чем, – современные машины очень надежны, а в особо важных применениях дублируются. И, хотя сбой компьютерной «железки» не исключен, неполадки в системе управления скорей всего на совести программистов. Как ни сложен компьютер, программы, которые он выполняет, в тысячи раз сложнее, а значит и возможность ошибок в них выше. Уверяю вас: компьютер – это всего лишь примитивный автомат, выполняющий команды, заложенные в него программистами.
К чему я клоню? Замыслив стать профессионалом, отбросьте миф о думающих машинах. Компьютер ни о чем не думает, не мечтает, и не спотыкается. Не пеняйте на него, когда ваши программы «захромают», – ищите ошибки у себя.
Загадочные коды
Вам известно, конечно, что исполняемые программы – это файлы с расширением EXE. Заглянем внутрь такого файла, как он устроен? С этой целью я воспользовался программой, подобной Total Commander. Выбрав один из исполняемых файлов, я нажал клавишу F3 – просмотр файла – и увидел следующую картину (рис. 1).
Рис.1 – «Внутренность» исполняемого файла
Что бы это значило? Я, к примеру, здесь ничего не понимаю! Мы видим код программы, который понимает только процессор компьютера. Вероятно, наши человеческие представления о здравом смысле очень далеки от компьютерных! Откуда взялся этот код? Надо ли программистам разбираться в этой тарабарщине? К счастью, большинству из них этого не требуется, – на выручку приходят языки программирования.
Языки программирования и компиляторы
Разумеется, вы слышали об этих языках, к настоящему времени их насчитывают тысячи. Зачем так много? Причины разные. С одной стороны, это объясняется разнообразием решаемых задач, а с другой – течением времени. Многие ранние языки устарели и отмирают, им на смену приходят новые. Однако все их объединяет одно – языки создавались, чтобы избавить человека от программирования на «тарабарском» языке процессора.
Кстати, знаете ли вы китайский язык? А японский или арабский? Теперь представьте себя президентом, принимающим послов этих стран, как вы будете с ними общаться? Очевидно, пригласите переводчиков. В таком же положении находится и процессор компьютера, знающий только свой «тарабарский» язык, а все прочие понимающий через переводчиков. Переводчики – это специальные программы – компиляторы. Правда, в отличие от людей, способных переводить в обе стороны, компиляторы переводят лишь с «человеческого» языка программирования на «тарабарский» язык процессора.
Рассмотрим рис. 2, где представлена упрощенная схема «перевода» с трех языков программирования: Паскаля, Си и Фортрана.
Рис.2 – Схема применения компиляторов
Что мы видим? Работу над программой начинают с подготовки текстового файла, где на выбранном языке записывают порядок действий для решения поставленной задачи. В текстовом файле можно напечатать что угодно – стихи, роман, или программу. Сохранив файл на диске, вы можете в любой момент вновь открыть его, полюбоваться, отредактировать и снова сохранить. Это ещё не программа, а лишь её текст, заготовка. Такой файл называют исходным текстом или, на жаргоне программистов, – «исходником», «сырцом» (русское слово «сырьё» отчасти созвучно английскому Source – «источник»). Исходные файлы показаны на рисунке слева. Вот пример небольшой программки на языке Паскаль.
Var a, b : integer;
Begin
Readln(a,b);
Writeln(’a*b = ’, a*b);
End.
Конечно, вам она ещё не понятна. Но, согласитесь, в отличие от загадочного машинного кода, здесь чувствуется возможность что-то понять.
Итак, исходный текст иногда понятен автору программы, но неясен процессору. Потому после подготовки текста программист вызывает компилятор, переводящий текст в код процессора. Для каждого языка существуют свои правила и свой компилятор, вот его-то и надо запустить. Полученный в результате компиляции исполняемый EXE-файл далее «живет своей жизнью»: его можно запускать на выполнение, копировать, проверять на вирусы и заражать ими, – с исходным файлом он уже не связан. А если захочется что-то изменить в программе? Тогда без исходника не обойтись. Надо вернуться к нему, исправить редактором текста и вновь вызвать компилятор для перевода на «тарабарский» язык. Поэтому исходные тексты берегут, как зеницу ока, а то и секретят, если программа имеет коммерческое или военное значение.
Следующий шаг – IDE
Итак, для создания программы нужны, по меньшей мере, два инструмента: редактор текста и компилятор. Но на практике их требуется больше, – ведь без отладчика и справочной системы трудно обойтись. Нужда в нескольких инструментах доставляла когда-то программистам массу неудобств. Приходилось многократно «бегать по кругу», запуская эти программы одну за другой, пока результат не приближался к задуманному.
Но с появлением персональных компьютеров все изменилось: была создана интегрированная среда разработки, или сокращенно ИСР. В компьютерной литературе чаще применяют англоязычное сокращение – IDE (Integrated Development Environment), мы тоже примем его.
Так что же такое IDE? Слово «интегрированная» значит «объединяющая». IDE – это мощная программа, объединяющая в себе и редактор, и компилятор, и отладчик, и справочную систему по языку. С появлением IDE программисты будто пересели с дребезжащей телеги в роскошный автомобиль, оплатив покупку быстрой и качественной работой. В скором времени мы «оседлаем» одну из таких IDE к языку Паскаль.
Итоги
• Отбросьте миф о думающих машинах, – действия компьютера определяются только вами, его ошибки – это ошибки программиста.
• Человек и компьютер «говорят» на разных языках. Процессор компьютера «понимает» лишь язык своих кодов, в котором трудно разобраться человеку.
• Для программирования изобретено много языков. На этих языках человек излагает порядок решения задачи в понятной для него форме.
• Для перевода текстового файла с программой в исполняемый EXE–файл используют программы-компиляторы.
• Современная интегрированная среда разработки (IDE) объединяет в одной программе редактор текста, компилятор, отладчик и справочную систему.
- Только для взрослых
- Детям до 16–ти
- Глава 1 Путь далек у нас с тобою…
- Глава 2 Вместо теории
- Глава 3 Консольный интерфейс
- Глава 4 Оружие – к бою!
- Глава 5 Программа номер один
- Глава 6 Подготовка к следующему штурму
- Глава 7 Развиваем успех
- Глава 8 Постоянные и переменные
- Глава 9 Переменные: продолжение знакомства
- Глава 10 Условный оператор
- Глава 11 Операторный блок
- Глава 12 Цикл с проверкой в конце
- Глава 13 Правда и кривда
- Глава 14 Дважды два – четыре
- Глава 15 Айда в Монте-Карло!
- Глава 16 Делу время, а потехе час
- Глава 17 И вновь за парту
- Глава 18 Аз, Буки
- Глава 19 Процедуры и функции: разделяй и властвуй
- Глава 20 Процедуры: первый опыт
- Глава 21 Отладка
- Глава 22 О передаче параметров
- Глава 23 Функции
- Глава 24 Криптография
- Глава 25 Текстовые файлы
- Глава 26 Я не читатель, – я писатель!
- Глава 27 Дайте кораблю минутный отдых!
- Глава 28 Редактор и справочная система
- Глава 29 Читайте по-новому
- Глава 30 Журнальная история
- Глава 31 Финал журнальной истории
- Глава 32 Порядковые типы данных
- Глава 33 Вещественные числа
- Глава 34 Структура программы
- Глава 35 Множества
- Глава 36 Множества в Паскале
- Глава 37 Ввод и вывод множеств
- Глава 38 Множества в «бою»
- Глава 39 Командная игра (массивы)
- Глава 40 Пристрелка на знакомых мишенях
- Глава 41 По порядку, становись!
- Глава 42 Кто ищет, тот всегда найдет
- Глава 43 Сортировка по-взрослому
- Глава 44 Строки
- Глава 45 Очереди и стеки
- Глава 46 Огромные числа
- Глава 47 Системы счисления
- Глава 48 Железная логика
- Глава 49 Сложные массивы
- Глава 50 Неспортивные рекорды (записи)
- Глава 51 Указатели в море памяти
- Глава 52 Динамические переменные
- Глава 53 Массив указателей
- Глава 54 Односвязные списки
- Глава 55 Слова, слова, слова…
- Глава 56 И снова очереди, и снова стеки…
- Глава 57 Графомания
- Глава 58 По графу шагом марш!
- Глава 59 Крупные проекты
- Глава 60 Мелкие хитрости
- Глава 61 «Кубики» программиста (ООП)
- Глава 62 Самое интересное только начинается!
- Приложение А Установка и настройка IDE Borland Pascal
- Приложение Б Консольная программа в среде Delphi
- Приложение В Особенности IDE Pascal ABCNet
- Приложение Г Зарезервированные слова
- Приложение Д Ошибки компиляции
- Приложение Е Ошибки исполнения
- Приложение Ж Директивы управления компиляцией
- Приложение З Назначение пунктов меню
- Приложение И Стандартная кодировка символов MS–DOS
- Приложение К Некоторые встроенные процедуры и функции
- Приложение Л Перечень программ
- Приложение М Пример олимпиадной задачи
- Библиография
- Содержание книги
- Популярные страницы
- 12.11. Формализация теории множеств
- 7.7.3. Основы теории
- 1. Эволюция теории и практики маркетинга в контексте развития информационных технологий
- Предисловие Майка Кона
- Кодировки текста
- Отладка (debugging)
- Процесс SOLID
- SOLID
- Предисловие
- Общие положения
- 2.6. Неформальная обратная связь: как негативное сделать позитивным