Pers.narod.ru. Обучение. Учебник по Паскалю. Приложение 1

Pers.narod.ru. Обучение. Учебник по Паскалю. Приложение 1

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

Pers.narod.ru. Обучение. Учебник по Паскалю. Приложение 1

Приложение 1. Таблицы ASCII-кодов символов для операционных систем DOS и Windows

 

Чтобы понять, как хранится информация в ЭВМ, нам придется вспомнить ряд терминов.

Минимальная единица измерения информации — один бит. Бит — это двоичный разряд со значением «0» или «1». Очевидно, почему разработчики первых ЭВМ остановились на двоичной системе счисления. Числа в этой системе легче всего представить физически — допустим, нулю соответствует состояние «не намагничено» участка магнитной ленты, а единице — «намагничено», или нулю — состояние «нет сигнала», а единице — «есть сигнал» в некоторой линии связи.

Вся информация в компьютере хранится в числовой форме и двоичной системе счисления. Поскольку с помощью одного бита можно представить всего 2 различных значения, минимальной передаваемой или адресуемой единицей информации является байт, представляющий собой совокупность 8 бит. Более крупными единицами измерения данных являются килобайт (Кб) =1024 (210) байта, мегабайт (Мб) =1024 килобайта и гигабайт (Гб) =1024 мегабайта. Для ориентировки можно сказать, что если на странице текста помещается в среднем 2500 знаков, то 1 Мб — это примерно 400 страниц, а 1 Гб — 400 тысяч страниц.

Легко понять, сколько различных значений может быть представлено с помощью N бит — это число равно 2N. Таким образом, в один байт «уместится» 28 = 256 различных значений.

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

кодировкой символов. Как правило, код символа хранится в одном байте, поэтому коды символов могут принимать значения от 0 до 255. Такие кодировки называются однобайтовыми. Основной символьный набор компьютера — это стандартная для IBM-совместимых машин однобайтовая кодировка ANSI, называемая также ASCII-кодом (читается «аски-код»).

В двухбайтовой кодировке Unicode (Юникод), предлагаемой в настоящее время в качестве общемирового стандарта, символ кодируется двумя байтами, таким образом, коды символов могут принимать значения от 0 до 65535=2

16 различных символов. В этой кодировке имеются коды для всех букв алфавитов множества языков, математических, декоративных символов и т. д.

На рис. П1 представлены две основные русскоязычные кодировки, известные как DOS-866 и Windows-1251. С первой работает среда Турбо-Паскаль и все программы русифицированных версий DOS, со второй — все приложения русифицированных версий Windows. Чтобы узнать код символа, достаточно к числу десятков из первого столбца приписать число единиц из первой строки. Так, код буквы «Z» в обеих кодировках равен 90. Символы с кодами меньше 32 — непечатаемые, это такие символы, как перевод строки, возврат каретки, табуляция, поэтому они не вошли в таблицу. Код пробела равен 32. Обратите внимание, что первые половины кодовых таблиц (символы с кодами меньше 128) совпадают как в этих двух кодировках, так и во всех остальных.


Рис. П1. Кодировки Dos и Windows


Руководство пользователя.

Translate into Russian, page 1. — Translated by humans

Free Pascal : User’s Guide

Free Pascal: Руководство пользователя

History of edits (Latest: frost_asm 12 years, 9 months ago) §

Free Pascal : User’s Guide

Free Pascal: Руководство пользователя

History of edits (Latest: frost_asm 12 years, 9 months ago) §

User’s Guide for Free Pascal, Version 2.4 Document version 2.4 March 2010

Руководство пользователя Free Pascal версии 2.4. Версия документа 2.4. Март 2010

History of edits (Latest: elmodos 12 years, 9 months ago) §

Michael Van Canneyt,Florian Klampfl

Michael Van Canneyt, Florian Klampfl

History of edits (Latest: frost_asm 12 years, 9 months ago) §

Chapter 1

Глава 1

History of edits (Latest: frost_asm 12 years, 9 months ago) §

Introduction

Вступление

History of edits (Latest: frost_asm 12 years, 9 months ago) §

1. 1 About this document.

1.1 Об этом документе.

History of edits (Latest: frost_asm 12 years, 9 months ago) §

This is the user’s guide for Free Pascal. It describes the installation and use of the Free Pascal compiler on the different supported platforms. It does not attempt to give an exhaustive list of all supported commands, nor a definition of the Pascal language. Look at the Reference Guide for these things. For a description of the possibilities and the inner workings of the compiler, see the Programmer’s Guide. In the appendices of this document you will find lists of reserved words and compiler error messages (with descriptions).

Это руководство пользователя Free Pascal. Оно описывает установку и использование компилятора Free Pascal на различных поддерживаемых платформах. Оно не пытается дать ни исчерпывающий список всех поддерживаемых команд, ни определение языка Pascal . Для этих целей смотрите Справочное Руководство.

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

History of edits (Latest: PatR1ck 12 years, 8 months ago) §

This document describes the compiler as it is/functions at the time of writing. First consult the README and FAQ files, distributed with the compiler. The README and FAQ files are, in case of conflict with this manual, authoritative.

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

History of edits (Latest: elmodos 12 years, 8 months ago) §

1.

2 About the compiler.

1.2 О компиляторе.

History of edits (Latest: elmodos 12 years, 8 months ago) §

Free Pascal is a 32-and 64-bit Pascal compiler. The current version (2.2) can compile code for the following processors:

Free Pascal — это 32-х и 64-битный компилятор для языка программирования Pascal. Текущая версия (2.2) способна компилировать код для следующих процессоров:

History of edits (Latest: alexgearbox 12 years, 8 months ago) §

• Intel i386 and higher (i486, Pentium family and higher)

• Intel i386 и выше (i486, семейства Pentium и выше)

History of edits (Latest: frost_asm 12 years, 8 months ago) §

• AMD64/x86_64

• AMD64/x86_64

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• PowerPC

• PowerPC

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• PowerPC64

• PowerPC64

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• SPARC

• SPARC

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• ARM

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• The m68K processor is supported by an older version.

• процессор m68K поддерживается в предыдущих версиях компилятора.

History of edits (Latest: elmodos 12 years, 8 months ago) §

The compiler and Run-Time Library are available for the following operating systems:

Компилятор и библиотека времени выполнения доступны для следующих операционных систем:

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• DOS

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• LINUX

• LINUX

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• AMIGA (version 0.99.5 only)

• AMIGA (только версии 0.99.5)

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• WINDOWS

• WINDOWS

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• Mac OS X

• Mac OS X

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• OS/2 (optionally using the EMX package, so it also works on DOS/Windows)

• OS/2 (при этом возможно использование пакета EMX, такой способ будет работать также под DOS/Windows)

History of edits (Latest: Odyssey 12 years, 9 months ago) §

• FREEBSD

• FREEBSD

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• BEOS

• BEOS

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• SOLARIS

• SOLARIS

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• NETBSD

• NETBSD

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• NETWARE

• NETWARE

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• OPENBSD

• OPENBSD

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• MorphOS

• MorphOS

History of edits (Latest: frost_asm 12 years, 9 months ago) §

• Symbian

• Symbian

History of edits (Latest: frost_asm 12 years, 9 months ago) §

The complete list is at all times available on the Free Pascal website.

Полный список постоянно доступен на официальном веб-сайте проекта.

History of edits (Latest: elmodos 12 years, 8 months ago) §

Free Pascal is designed to be, as much as possible, source compatible with Turbo Pascal 7.0 and Delphi 7 (although this goal is not yet attained), but it also enhances these languages with elements like operator overloading. And, unlike these ancestors, it supports multiple platforms.

Free Pascal проектировался так, чтобы быть как можно больше совместимым с Turbo Pascal 7.0 и Delphi 7 на уровне исходных текстов (хотя эта цель еще не достигнута), но это не мешает расширять язык новыми элементами, такими как перегрузка операторов и другие. И, в отличии от своих предков, он кроссплатформенный.

History of edits (Latest: elmodos 12 years, 8 months ago) §

It also differs from them in the sense that you cannot use compiled units from one system for the other, i. e. you cannot use TP compiled units.

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

History of edits (Latest: elmodos 12 years, 8 months ago) §

Справочник по цветам Free Pascal IDE

Цвета консоли IDE Free Pascal Compiler

В консоли Free Pascal IDE нет долгое время был диалог о цветовых предпочтениях. Вы все еще можете изменить цвета, отредактировав активный файл fp.ini . Это, вероятно, тот, что находится в вашем рабочем каталоге, но вы можете проверить, перейдя в Параметры > Сохранить fp.ini и проверить, какой файл fp.ini ваша система имеет самую последнюю отметку времени.

В fp.ini есть раздел под [Цвета] с ряд значений палитры консоли, каждое из которых представлено в форме #$BF, где B и F — цвета фона и переднего плана соответственно, выражается в виде одиночных шестнадцатеричных цифр, соответствующих 16-цветному коду вашей консоли. палитра. Например, если вы используете палитра старой школы по умолчанию, #$F4 приводит к темно-красному тексту на яркий белый фон.

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

90 023 9002 8 9002 4 12 90 024 Кнопка диалога активна, курсор на ней 9002 3
Индекс Элемент
1 Цвет рабочего стола, если все окна закрыты и fp.ans недоступен
2 Строка меню, обычные элементы меню
3 Элементы меню недоступны, выделены серым цветом
4 Обычное выделение ярлыков меню
5 Выделение выбранного элемента меню
6 Пункт меню (выбран отключен)
7 Выделение ярлыка выбранного пункта меню
8 Отладка > Границы экрана вывода/пользователя, неактивны
9 Отладка > Границы экрана вывода/пользователя
10 Отладка > Кнопки границы экрана вывода/пользователя
11 Отладка > полоса прокрутки экрана вывода/пользователя
Отладка > Вывод/Экран пользователя Стрелки и большой палец полосы прокрутки
13 Отладка > Вывод основного текста экрана пользователя 5
25 Инструменты > Таблица ASCII границы
26 Инструменты > Кнопка границы таблицы ASCII
32 Тело диалоговых вкладок
33 9 0025 Основная часть диалогового окна
34 Кнопки границы диалогового окна
35 Полоса прокрутки диалогового окна
36 Стрелки и большой палец полосы прокрутки диалогового окна
37 Цвет текста всплывающего сообщения
38 Заголовок неактивной группы диалога
39 Заголовок активной группы диалога
40 Выделение ярлыка элемента диалога
41 Кнопка диалога неактивна
42 Кнопка диалога выделена, курсор не на ней
43
45 Ярлык кнопки диалога подсветка
46 тень кнопки диалога
47 список флажков/переключателей диалога
48 9 0025 Диалоговый флажок/переключатель Список выбранных элементов
49 Выделение ярлыка списка диалоговых окон/переключателей
50 Редактируемое текстовое поле диалогового окна
51 Диалоговое редактируемое текстовое поле выбранный текст
53 Стрелка раскрывающегося списка диалогового окна
54 Скобки со стрелкой раскрывающегося списка диалогового окна?
167 Окно редактирования, неактивно
168 Редактирование границ окна, активно
169 Редактирование кнопок границы окна
170 Полоса прокрутки окна редактирования
171 Окно редактирования стрелки полосы прокрутки и большой палец строка
201 Комментарий к коду
202 Код зарезервированных слов (если, то, начало, конец, функция. ..) 9 0025
203 Кодовые идентификаторы (переменные имена, имена функций…)
204 Литералы строк кода
205 &восьмеричный, %двоичный)
206 Код сборки
207 Кодовые символы (скобки, плюс, минус, точка с запятой…)
208 Редактор кода, выбранный текст
211 Директивы компилятора
212 Кодовые числа ($ шестнадцатеричные)
214 90 025 Строка точки останова кода, сообщение об ошибке компиляции при переходе к строке ошибки
216 Граница окна сообщений компиляции
217 Кнопки границы окна сообщений компиляции
218 9 0025 Полоса прокрутки окна сообщений компиляции
219 Стрелки полосы прокрутки окна сообщений компиляции и thumb
223 Окно сообщений компиляции обычный текст
224 Окно сообщений компиляции выделена строка

Теперь здесь доступен еще более полный список.

Моя тема в стиле CGA:

[Цвета]
Palette_1_40=#$71#$70#$78#$74#$20#$28#$24#$17#$1F#$1A#$31#$31#$1E#$71#$1F#$37#$3F#$3A#$13#$13#$3E#$21 #$3F#$70#$7F#$7A#$13#$13#$70#$7F#$7E#$70#$7F#$7A#$13#$13#$70#$70#$7F#$7E
Palette_41_80=#$20#$2B#$2F#$78#$2 E#$70#$30#$3F#$3E#$3F#$2F#$1A#$20#$72#$31#$31#$30#$2F#$3E#$31#$13#$38#$00#$17#$1F#$1A#$71#$71#$1E#$17 #$1F#$1E#$20#$2B#$2F#$78#$2E#$10#$30#$3F
Palette_81_120=#$3E#$70#$2F#$7A#$20#$12#$31#$31#$30#$2F#$3E#$31#$13 #$38#$00#$37#$3F#$3A#$13#$13#$3E#$30#$3F#$3E#$20#$2B#$2F#$78#$2E#$30#$70#$7F#$7E#$1F#$2F#$1A#$20#$32 #$31#$71
Palette_121_160=#$70#$2F#$7E#$71#$13#$38#$00#$70#$7F#$7A#$13#$13#$70#$70#$7F#$7E#$20#$2B#$2F#$78#$2E#$70#$30# $3F#$3E#$1F#$2F#$1A#$20#$72#$31#$31#$30#$2F#$3E#$31#$13#$38#$00#$30
Palette_161_200=#$3E#$1E#$70#$30#$3F#$3A#$18 #$17#$1F#$03#$31#$1E#$71#$1F#$00#$00#$00#$00#$00#$00#$00#$00#$00#$00#$00#$00#$00#$00#$00#$00#$00#$00 #$00#$00#$00#$00#$00#$00#$1F#$1F
Palette_201_240=#$3F#$1B#$1F#$1E#$1D#$17#$17#$70#$3F#$30#$1E#$1D#$1F#$4E#$31 #$3F#$3A#$31#$31#$31#$31#$3F#$31#$2F#$3E#$3F#$70#$20#$FF#$3A#$37#$FF#$FF#$FF

Эта информация была верна для FPC 3. 2.2 / IDE 1.0.12 примерно в июле 2021 года. Вернуться на страницу текстового указателя

Настоящие программисты не используют Паскаль

Настоящие программисты не используют Паскаль [Письмо в редакцию Datamation , том 29 № 7, Июль 1983 года. Я давно потерял свою потрепанную фотокопию, но я верю, это было написано (и защищено авторскими правами) Эдом Постом, Tektronix, Уилсонвилл, штат Орегон, США.

История Мела — связанная статья. ]

В старые добрые времена, в «золотую эру» компьютеров, было легко отделить мужчин от мальчиков (иногда называемых «настоящими Мужчины» и «Едоки киша» в литературе). Настоящие Мужчины были теми, кто понимал компьютерное программирование, а Едоки пирога с заварным кремом были теми, кто этого не делал. Настоящий программист говорил что-то вроде «DO 10 I=1,10» и «ABEND» (на самом деле они говорили на заглавные буквы, вы понимаете), а весь остальной мир сказал такие вещи, как «компьютеры слишком сложны для меня» и «я не могу понять компьютерам — они настолько безличны» (предыдущая работа [1] указывает на что Настоящие Мужчины ни к чему не «относятся» и не боятся быть безличный. )

Но, как обычно, времена меняются. Сегодня мы столкнулись с мир, в котором маленькие старушки могут получить компьютеры в свои микроволновые печи, 12-летние дети могут вышибить настоящих мужчин из воды, играя в Asteroids и Pac-Man, и любой желающий может купить и даже понять их собственный персональный компьютер. Настоящий программист находится под угрозой вымирания, замены его высоким школьники с ТРАШ-80.

Совершенно очевидно, что необходимо указать на различия между типичный игрок средней школы в Pac-Man и настоящий программист. Если эта разница становится ясной, это даст этим детям что-то для стремиться к образцу для подражания, Отцу. Это также поможет объяснить работодателям Настоящих Программистов, почему было бы ошибкой заменить настоящих программистов в своем штате на 12-летнего Pac-Man игроков (при значительной экономии на зарплате).

Самый простой способ отличить настоящего программиста от толпы — это язык программирования, который он (или она) использует. Настоящие программисты используют Фортран. Любители пирогов с заварным кремом используют Паскаль. Никлаус Вирт, дизайнер Паскаль однажды выступил с докладом, на котором его спросили: «Как вы произносите твое имя?». Он ответил: «Вы можете либо называть меня по имени, произнося это «Veert», или назовите меня по значению «Worth». этот комментарий о том, что Никлаус Вирт — любитель пирогов с заварным кремом. Единственный механизм передачи параметров, одобренный Real Programmers, call-by-value-return, реализованный в IBM/370 Fortran G и H компиляторы. Настоящим программистам не нужны все эти абстрактные понятия, чтобы выполнять свою работу — они вполне довольны перфоратором, Компилятор Fortran IV и пиво.

  • Настоящие программисты обрабатывают списки на Фортране.
  • Настоящие программисты манипулируют строками на Фортране.
  • Настоящие программисты ведут бухгалтерский учет (если вообще занимаются им) в Фортран.
  • Настоящие программисты делают программы искусственного интеллекта в Фортран.

Если вы не можете сделать это на Фортране, сделайте это на ассемблере. Если вы не можете сделать это на ассемблере, это не стоит делать.

Ученые в области компьютерных наук попали в «структурированное программирование» затор за последние несколько лет. Они утверждают что программы легче понять, если программист использует некоторые специальные языковые конструкции и приемы. Они не все согласны с какие именно конструкции, конечно, и пример, который они используют, чтобы показать их конкретная точка зрения неизменно умещалась на одной странице какого-нибудь малоизвестный журнал или еще какой— явно недостаточно примера, чтобы убедить любого. Когда я вышел из школы, я думал, что я был лучшим программист в мире. Я мог бы написать непобедимую крестики-нолики программу, использовать пять разных компьютерных языков и создать 1000 строк программы, которые РАБОТАЛИ (действительно!). Потом я вышел в реальный мир. Моей первой задачей в реальном мире было прочитать и понять 200 000 программу на Фортране, а затем ускорьте ее в два раза. Любой реальный Программист скажет вам, что все структурированное кодирование в мире не поможет вам решить такую ​​проблему — для этого нужен настоящий талант. Несколько быстрых замечаний о настоящих программистах и ​​структурированных Программирование:

  • Настоящие программисты не боятся использовать GOTO.
  • Настоящие программисты могут писать пять страниц циклов DO без запутаться.
  • Настоящие программисты любят арифметические операторы ЕСЛИ — они делают код интереснее.
  • Настоящие программисты пишут самомодифицирующийся код, особенно если они могут сэкономить 20 наносекунд в середине узкого цикла.
  • Настоящие программисты не нуждаются в комментариях — код очевидный.
  • Поскольку в Фортране нет структурированного оператора IF, REPEAT… UNTIL, или оператор CASE, настоящим программистам не нужно беспокоиться о том, чтобы не использовать их. Кроме того, их можно имитировать. при необходимости с помощью назначенных переходов GOTO.

В последнее время структуры данных также получили много внимания в прессе. Абстрактный Типы данных, структуры, указатели, списки и строки стали популярен в определенных кругах. Вирт (вышеупомянутый Пожиратель пирогов с заварным кремом) на самом деле написал целую книгу [2], утверждая, что вы можете написать программа, основанная на структурах данных, а не наоборот. Как всем Настоящим Программистам известно, что единственная полезная структура данных — это Множество. Строки, списки, структуры, наборы — все это частные случаи. массивов, и с ними можно обращаться так же легко, не путаясь дополните свой язык программирования всевозможными усложнениями. Самое худшее в причудливых типах данных — это то, что их нужно объявлять, а настоящие языки программирования, как мы все знаем, имеют неявную типизацию. на основе первой буквы (шестисимвольного) имени переменной.

Какую операционную систему использует настоящий программист? КП/М? Не дай бог… CP/M, в конце концов, по сути своей игрушечная операционная система. система. Даже маленькие старушки и ученики начальной школы могут понимать и использовать CP/M.

Unix, конечно, намного сложнее — типичный Unix хакер никогда не сможет вспомнить, как называется команда PRINT. неделе, но когда дело доходит до дела, Unix становится прославленным видео игра. Люди не занимаются серьезной работой над Unix-системами: они отправляйте шутки по всему миру в сети UUCP и пишите приключенческие игры и исследовательские работы.

Нет, ваш настоящий программист использует OS/370. Хороший программист может найти и понять описание ошибки IJK305I он просто попал в его руководство JCL. Великий программист может написать JCL без ссылаясь на руководство вообще. Действительно выдающийся программист может найти ошибки, спрятанные в 6-мегабайтном дампе ядра, без использования шестнадцатеричный калькулятор. (Я действительно видел, как это делается.)

ОС действительно замечательная операционная система. это возможно разрушить дни работы одним неуместным пробелом, так что бдительность в штате программистов поощряется. Лучший способ приблизиться система через keypunch. Некоторые люди утверждают, что существует Система разделения времени, работающая на OS/370, но после тщательного изучения Я пришел к выводу, что они ошиблись.

Какие инструменты использует настоящий программист? Теоретически настоящий Программист мог запускать свои программы, вводя их на передней панели. компьютера. В те дни, когда у компьютеров были передние панели, это действительно делалось время от времени. Ваш типичный настоящий программист знал весь загрузчик начальной загрузки по памяти в шестнадцатеричном формате и переключал его в всякий раз, когда он был уничтожен его программой. (Тогда память была память… она не исчезла, когда отключили электричество. Сегодня память либо забывает что-то, когда вы этого не хотите, либо помнит что-то задолго до того, как о них лучше забудут.) Легенда гласит, что Сеймор Крей, изобретатель суперкомпьютера Cray I и большинства управляющих данных. компьютеры, фактически переключили первую операционную систему на CDC7600 на передней панели из памяти при первом включении. Сеймор, разумеется, настоящий программист.

Один из моих любимых настоящих программистов был системным программистом. для Техас Инструментс. Однажды ему позвонили из пользователь, чья система дала сбой во время сохранения некоторых важная работа. Джим смог восстановить повреждения над телефон, заставляя пользователя переключать инструкции дискового ввода-вывода в передняя панель, восстановление системных таблиц в шестнадцатеричном формате, чтение регистра содержимое обратно по телефону. Мораль этой истории: пока Real Programmer обычно включает в себя перфоратор и строчный принтер. свой инструментарий, он может обойтись только передней панелью и телефоном в чрезвычайных ситуациях.

В некоторых компаниях редактирование текста больше не состоит из десяти инженеры стоят в очереди, чтобы использовать перфоратор 029. Фактически, в здании, в котором я работаю, нет ни одного клавишного перфоратора. Реальность Программисту в этой ситуации приходится работать с «текстовым редактором». программа. Большинство систем предоставляют несколько текстовых редакторов на выбор, и Настоящий Программист должен тщательно выбирать тот, который отражает его индивидуальный стиль. Многие люди считают, что лучшие текстовые редакторы в мире world были написаны в Исследовательском центре Xerox в Пало-Альто для использования на своих Компьютеры Alto и Dorado[3]. К сожалению, ни один Настоящий Программист не стал бы когда-либо использовать компьютер, операционная система которого называется SmallTalk, и уж точно не стал бы разговаривать с компьютером мышкой.

Некоторые концепции этих редакторов Xerox были изменены. включены в редакторы, работающие на более разумно названных операционных системы — EMACS и VI — две. Проблема с этими редакторами что настоящие программисты считают, что «что видишь, то и получаешь» такая же плохая концепция в текстовых редакторах, как и в женщинах. Нет, Настоящий Программисту нужен текстовый редактор типа «вы просили, вы его получили»… сложный, загадочный, мощный, неумолимый, опасный. ТЕКО, быть точный.

Было замечено, что последовательность команд TECO более больше напоминает шум линии передачи, чем читаемый текст[4]. Одна из самых увлекательных игр, в которые можно играть с TECO, — это печатать. ваше имя в качестве командной строки и попробуйте угадать, что он делает. Почти любая возможная опечатка во время разговора с TECO будет вероятно, уничтожит вашу программу или, что еще хуже, внедрить тонкие и загадочные баги в когда-то работавшей подпрограмме.

По этой причине Настоящие Программисты не хотят на самом деле редактировать программу, которая близка к рабочей. Они находят это много проще просто исправить бинарный объектный код напрямую, используя замечательная программа под названием SUPERZAP (или ее эквивалент на не-IBM машины). Это работает так хорошо, что многие работающие программы на IBM системы не имеют никакого отношения к исходному коду Fortran. Во многих случаях исходный код более недоступен. Когда это приходит время исправлять такую ​​программу, ни один менеджер даже не станет подумайте о том, чтобы отправить кого-то меньше, чем Настоящего Программиста, чтобы сделать работа— ни один структурированный программист, питающийся пирогами с заварным кремом, даже не знал бы когда начать. Это называется «охрана труда».

Некоторые инструменты программирования, которые НЕ используются настоящими программистами:

  • Препроцессоры Fortran, такие как MORTRAN и RATFOR. Cuisinarts программирования — отлично подходит для приготовления пирога с заварным кремом. Видеть комментарии выше по структурному программированию.
  • Отладчики исходного языка. Настоящие программисты умеют читать ядро свалки.
  • Компиляторы с проверкой границ массива. Они душат творчества, уничтожить большинство интересных применений для ЭКВИВАЛЕНТНОСТЬ, и сделать невозможным изменение операционной системный код с отрицательными индексами. Хуже всего, границы проверка неэффективна.
  • Системы обслуживания исходного кода. Настоящий программист держит его код заперт в картотеке, потому что он подразумевает, что его владелец не может оставить свои важные программы без присмотра [5].

Где работает типичный настоящий программист? Какого рода программы достойны усилий столь талантливого человека? Вы можете быть уверены, что ни один настоящий программист не погибнет. написание программ дебиторской задолженности на COBOL или сортировка почтовых отправлений списки для журнала People. Настоящий программист хочет задач потрясающая важность (буквально!).

  • Настоящие программисты работают в Лос-Аламосской национальной лаборатории, написание симуляций атомной бомбы для запуска на суперкомпьютерах Cray I.
  • Настоящие программисты работают в Агентстве национальной безопасности, расшифровка русских передач.
  • Во многом благодаря усилиям тысяч реальных Программисты, работающие в НАСА, что наши мальчики добрались до Луны и еще до русских.
  • Компьютеры космического корабля «Шаттл» были запрограммированы Real Программисты.
  • Настоящие программисты работают на Boeing, разрабатывая систем управления крылатыми ракетами.

Некоторые из самых замечательных настоящих программистов работают в Лаборатория реактивного движения в Калифорнии. Многие из них знают, всю операционную систему космических кораблей «Пионер» и «Вояджер». сердце. С комбинацией больших наземных программ Fortran программы на ассемблере для малых космических кораблей. способен совершать невероятные подвиги навигации и импровизации— ударяясь о окна шириной в десять километров на Сатурне после шести лет в космос, ремонт или обход поврежденных сенсорных платформ, радиостанций, и батареи. Якобы одному Настоящему Программисту удалось заправить программу сопоставления с образцом в несколько сотен байтов неиспользуемого памяти в космическом корабле «Вояджер», который искал, находил и сфотографировал новолуние Юпитера.

Текущий план космического корабля Галилео состоит в том, чтобы использовать гравитационный помочь траектории мимо Марса на пути к Юпитеру. Эта траектория проходит в пределах 80 +/- 3 километров от поверхности Марса. Никто не собирается доверять программе Pascal (или программисту Pascal) для навигации к этим допускам.

Как вы понимаете, многие Настоящие Программисты мира работают на Правительство США, в основном министерство обороны. это как то должно быть. Однако в последнее время над реалом образовалась черная туча. Горизонт программиста. Похоже, что некоторые высокопоставленные едоки пирога с заварным кремом в Министерство обороны решило, что все оборонные программы должны быть написаны на каком-то великом объединенном языке под названием «ADA» ((C), DoD). Для в то время как казалось, что ADA было суждено стать языком, который вопреки всем предписаниям реального программирования — язык с структура, язык с типами данных, строгой типизацией и точками с запятой. Короче говоря, язык, предназначенный для того, чтобы парализовать творчество типичных Настоящий Программист. К счастью, в языке, принятом Министерством обороны, было достаточно интересные функции, чтобы сделать его доступным — это невероятно сложный, включает в себя методы вмешательства в операционную систему и перераспределение памяти, и Эдсгеру Дейкстре это не нравится [6]. (Дейкстра, как я уверен, вы знаете, был автором книги «GOTO, учитываемые Вредоносный» — знаковая работа в области методологии программирования, получившая одобрение программисты на Паскале и едоки пирогов. ) Кроме того, решительные Настоящий программист может писать программы на Фортране на любом языке.

Настоящий Программист может пойти на компромисс со своими принципами и работать над что-то чуть более тривиальное, чем уничтожение жизни, как мы знаю это. При условии, что в нем достаточно денег. Есть несколько Например, настоящие программисты создают видеоигры в Atari. (Но нет играть в них — настоящий программист знает, как обыграть машину каждый раз. время: в этом нет ничего сложного.) Все, кто работает в LucasFilm, — настоящие Программист. (Было бы сумасшествием отказаться от пятидесяти миллионов фанатов «Звездного пути».) Доля настоящих программистов в Компьютерная графика несколько ниже нормы, в основном потому, что никто еще не нашел применение компьютерной графике. С другой стороны, вся компьютерная графика выполняется на Фортране, поэтому людей, занимающихся графикой, чтобы не писать COBOL программы.

Как правило, Настоящий Программист играет так же, как и работает — с компьютеры. Он постоянно удивляется тому, что его работодатель действительно платит ему делать то, что он сделал бы в любом случае для удовольствия (хотя он осторожно, чтобы не высказывать это мнение вслух). Иногда настоящий Программист действительно выходит из офиса, чтобы подышать свежим воздухом и пиво или два. Несколько советов, как отличить настоящего программиста от компьютерный класс:

  • На вечеринке Настоящие Программисты угол, говорящий о безопасности операционной системы и о том, как получить вокруг него.
  • На футбольном матче настоящий программист сравнивая пьесы с его симуляциями, напечатанными на 11 14 фальцованной бумаги.
  • На пляже настоящий программист рисует схемы на песке.
  • На похоронах Настоящий Программист говорит: «Бедный Джордж. И у него почти работала процедура сортировки раньше коронарной артерии.»
  • В продуктовом магазине Настоящий Программист — это тот, кто настаивает на том, чтобы прогонять банки мимо лазерного сканера на кассе себя, потому что он никогда не мог доверять операторам клавиатуры получить это право с первого раза.

В какой среде работает Real Programmer? лучший в? Это важный вопрос для менеджеров «Реала». Программисты. Учитывая сумму денег, которую необходимо содержать один из сотрудников, лучше всего поставить его (или ее) в окружение где он может выполнять свою работу.

Типичный настоящий программист живет за компьютером Терминал. Этот терминал окружают:

  • Списки всех программ, которые когда-либо были у настоящего программиста. обработаны, сложены примерно в хронологическом порядке на каждую квартиру Поверхность в офисе.
  • Полдюжины или около того частично наполненных чашек холодного кофе. Иногда в кабине плавают окурки. кофе. В некоторых случаях чашки будут содержать Orange Crush.
  • Если он не очень хорош, будут копии ОС JCL руководство и Принципы работы открыты для некоторых особенно интересные страницы.
  • Приклеенный к стене календарь Snoopy для линейного принтера для 1969 год.
  • На полу разбросаны несколько оберток от арахиса. сырные батончики с начинкой из сливочного масла — те, которые сделаны предварительно черствыми в пекарне, чтобы им не стало хуже, пока они ждали торговый автомат.
  • В верхнем левом ящике стола спрятан тайник с двойные Oreos для особых случаев.
  • Под Oreos находится шаблон блок-схемы, оставленный там предыдущим хозяином офиса. (настоящие программисты писать программы, а не документацию. Оставьте это обслуживающему персоналу.)

Настоящий программист способен работать 30, 40, даже 50 часов подряд, под сильным давлением. На самом деле он предпочитает это так. Плохое время отклика не беспокоит Real Программист — это дает ему возможность немного поспать между компиляциями. Если нет достаточной нагрузки на график Настоящий Программист, он склонен все усложнять, работа над небольшой, но интересной частью проблемы для первые девять недель, а остальные заканчиваются на последней неделе, в два-три марафона по 50 часов. Это не только чертовски впечатляет из своего менеджера, который отчаялся когда-либо получить проект сделано вовремя, но создает удобный предлог для невыполнения документация. Всего:

  • Ни один настоящий программист не работает с 9 до 5. ночь.)
  • Настоящие программисты не носят галстуков.
  • Настоящие программисты не носят туфли на высоких каблуках.
  • Настоящие программисты приходят на работу к обеду.
  • Настоящий программист может знать, а может и не знать имя своей жены. Однако он знает весь код ASCII (или EBCDIC). стол.
  • Настоящие программисты не умеют готовить. Продуктовые магазины не работают в три часа ночи. Настоящие программисты выживают на Twinkies и кофе.

Что насчет будущего? Это вызывает некоторую озабоченность у «Реала». Программисты, последнее поколение компьютерных программистов не воспитываются с таким же взглядом на жизнь, как их старейшины. Многие из них никогда не видели компьютер с передней панель. Вряд ли кто-то, заканчивающий школу в наши дни, может шестнадцатеричная арифметика без калькулятора. Выпускники колледжа эти дни мягкие — защищены от реалий программирования отладчики исходного кода, текстовые редакторы, которые считают скобки, и «удобные» операционные системы. Хуже всего то, что некоторые из них предполагаемые «ученые-компьютерщики» умудряются получать ученые степени, никогда не изучаю Фортран! Суждено ли нам стать индустрией Unix? хакеры и программисты на Паскале?

Исходя из своего опыта, я могу только сообщить, что будущее яркий для настоящих программистов во всем мире. Ни OS/370, ни Fortran никаких признаков вымирания, несмотря на все усилия Пас- Калифорнийские программисты по всему миру. Еще более тонкие трюки, такие как добавление конструкций структурированного кодирования в Fortran не удалось. Ой конечно, некоторые производители компьютеров выпустили компиляторы Fortran 77, но каждый из них имеет способ преобразовать себя обратно в компилятор Fortran 66 при сбросе дополнительной карты — чтобы компилируйте циклы DO такими, какими их задумал Бог.

Даже Unix может быть не так плох для настоящих программистов, как когда-то. был. Последняя версия Unix обладает потенциалом операционной система, достойная любого настоящего программиста — два разных и слегка несовместимые пользовательские интерфейсы, загадочный и сложный драйвер телетайпа, виртуальная память. Если игнорировать тот факт, что он «структурирован», даже программирование на «C» может быть оценено Настоящий программист: ведь нет проверки типов, переменная имена состоят из семи (десяти? восьми?) символов, а добавленные добавляется бонус типа данных Pointer — например, лучшие части Фортрана и языка ассемблера в одном месте. (Нет чтобы упомянуть некоторые из наиболее творческих способов использования #define.)

Нет, будущее не так уж и плохо. Почему в последние несколько лет популярная пресса даже комментировала яркую новинку множество компьютерных гениев и хакеров ([7] и [8]), покидающих такие места, как Стэнфорд и MIT для реального мира. Судя по всему, дух Настоящее Программирование живет в этих молодых мужчинах и женщинах. Пока есть нечеткие цели, причудливые ошибки и нереалистичные графики, найдутся настоящие программисты, готовые вмешаться и решить Проблема, сохранение документации на потом. Да здравствует Фортран!

Каталожные номера:

[1] Фейрштейн, Б.