Разное

Программы для паскаля: 404-Ошибка: 404

Содержание

Pascal. Структура программы, комментарии

Структура программы

Программа, написанная на языке программирования Pascal, состоит из заголовка, раздела описаний и тела программы (блока операторов).

Для объявления заголовка необходимо указать слово Program, а затем название самой программы, например:

Program Proga;

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

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

1) Раздел описания модулей:

Uses <имя 1, имя 2, … >;

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

Пример:

Uses Crt, Graph;

2) Раздел описания меток:

Label <метка 1, метка 2,…>;

При помощи оператора Goto можно изменить ход выполнения программы, а для его работы нужно объявить метки в разделе Label. В качестве меток используются целые числа, либо идентификаторы.

3) Раздел описания констант:

Const <имя 1, имя 2, …> ;

Константе (не изменяющийся величине) можно присвоить значение посредством знака =, который будет отделять его от имени константы, например:

Соnst
A = 10;
B = 0;
C = ‘C’;
Exit = ‘Exit’;
Char = оrd (‘B’) — ord (‘А’) + 1;

Тип константы зависит от ее значения, и может быть не только простым, но и выражением, а также использовать некоторые стандартные функции.

4) Раздел описания типов:

Type
<имя типа 1> = <определение типа 1>;
<имя типа 2> = <определение типа 2>; …

В разделе описания типов создаются пользовательские типы, которые как и стандартные можно использовать при объявлении переменных.

Пример:

type
degrees =1..40;
month=string[30];
var
mart: month;
monday: degrees;

5) Раздел описания переменных:

Var <имя 1, имя 2, …, имя N>: <тип>;

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

Пример:

Var
A, B, C: Integer;
Number: Char;
Y, N: Boolean;

6) Раздел описания процедур и функций;

Процедуры и функции объявляются после раздела Var и перед телом главной программы. Данная тема требует особого подхода, и поэтому будет рассмотрена в одной из последующих статей.

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

Раздел операторов является телом программы и представляет собой составной оператор, начало которого обозначается словом Begin, а конец – End.. Заключенный в нем операторы заканчиваются символом ;. Без этого раздела программа не имеет ни какого смысла.

В итоге у нас получилась следующая структура программы на Паскаль:

Program <имя программы>; { Заголовок программы }
Uses <имя 1, имя 2, … >; { Раздел описания модулей }
Label <метка 1, метка 2,…>; { Раздел описания меток }
Const <имя 1, имя 2,…>; { Раздел описания констант }
Type { Раздел описания типов }
<имя типа 1> = <определение типа 1>;
<имя типа 2> = <определение типа 2>;

Var <имя 1, имя 2,…>: <тип>; { Раздел описания переменных }
{Раздел описания процедур и функций}
Begin { Тело программы }
<операторы>
End.

Комментарии

Комментарии используются для пояснения определенного участка программы, и представляют собой любой текст, заключенный в фигурные скобки {..} или в (*..*). Они не могут включать в себя внутренние комментарии, но возможна конструкция (*..{..}..*). Также стоит отметить, что если после открывающей скобки следует знак $, то этот комментарий воспринимается как директива компилятора.

Не восприимчивость комментариев по отношению к компилятору делает их необязательными в программе, а их наличие лишь служит показателем хорошего тона. На ранних стадиях обучения, программисты, как правило, забывают про комментарии, либо осознано не комментируют свой код. В какой-то мере это связано с необходимостью написания крупных приложений и отсутствием опыта. Но со временем, необходимость пояснять написанное резко увеличивается.


Похожие записи:
  • Ветвления Паскаль
  • Записи в Паскале
  • Pascal. Циклы.
  • Общая структура программы Паскаль
  • Типизированные и нетипизированные файлы в Паскале

как учили детей программированию в 90-х и что с этим было не так / Хабр

Немного о том, что из себя представляла школьная «информатика» в 90-х, и почему все программисты тогда были исключительно самоучки.



На чем учили программировать детей

В начале 90-х московские школы начали выборочно оснащать классами ЭВМ. В помещениях сразу ставили решетки на окна и тяжелую обитую железом дверь. Откуда-то появлялся учитель информатики (выглядел как самый важный товарищ после директора), основной задачей которого было следить, чтобы никто ничего не трогал. Вообще ничего. Даже входную дверь.
В классах чаще всего можно было встретить системы БК-0010 (в его разновидностях) и БК-0011М.


Фото взято отсюда

Детям рассказывали про общее устройство, а также с десяток команд «Бейсика», чтобы могли нарисовать на экране линии и кружки.

Для младших и средних классов, наверное, этого было достаточно.

С сохранением своих творений (программ) тогда были отдельные проблемы. Чаще всего компьютеры с помощью контроллеров моноканала объединяли в сеть с топологией «общая шина» и скоростью передачи 57600 бод. Дисковод, как правило, был один, и с ним частенько не ладилось. То работает, то не работает, то сеть подвисла, то дискетка не читается.

Я тогда таскал с собой вот это творение емкостью 360 кБ.

Шансы на то, что в очередной раз я вытащу с нее свою программку, были процентов 50-70.

Однако главной проблемой всех этих историй с компьютерами «БК» были бесконечные зависания.

Это могло произойти в любой момент, будь то набор кода или выполнение программы. Зависшая система означала, что 45 минут времени ты прожил зря, т.к. приходилось делать все сначала, но оставшегося времени урока для этого было уже не достаточно.

Ближе к 1993 году в отдельных школах и лицеях появлялись нормальные классы с 286-ми машинами, а местами стояли даже «трешки». По части языков программирования было два варианта: там, где заканчивался «Бейсик», начинался «Турбо Паскаль».

Программирование на «Турбо Паскале» на примере «танчиков»

На «Паскале» детей учили строить циклы, отрисовывать всякие функции, работать с массивами. В физмат-лицее, где я одно время «обитал», на информатику отводили одну пару в неделю. И два года там была вот эта вот скукотища. Разумеется, хотелось сделать что-то посерьезнее, чем вывод на экран значений массива или некой синусоиды.

Танчики

Battle City была одной из самых популярных игр на приставках клонах NES (Dendy и др.).

В 1996-м популярность 8-биток прошла, они давно пылились в шкафах, и мне показалось прикольным в качестве чего-то масштабного сделать именно клон «Танчиков» для ПК. Далее как раз о том, как тогда надо было извернуться, чтобы запилить на «Паскале» что-то с графикой, мышкой и звуком.

Рисовать можно только палочки и кружочки

Начнем с графики.

В базовом варианте «Паскаль» позволял рисовать некоторые фигуры, закрашивать и определять цвета точек. Самые продвинутые процедуры в модуле Graph, приближающие нас к спрайтам, это GetImage и PutImage. С их помощью можно было захватывать в предварительно зарезервированную область памяти участок экрана и потом использовать этот кусок как растровое изображение. Другими словами, если вы хотите многократно использовать на экране какие-то элементы или изображения, вы их сначала отрисовываете, копируете в память, стираете экран, отрисовываете следующее и так до тех пор, пока не создадите в памяти нужную библиотеку. Поскольку все происходит быстро, пользователь этих фокусов не замечает.

Первый модуль, где в ход пошли спрайты – редактор карт.

В нем было размеченное игровое поле. Клик мышкой вызывал меню, где можно было выбрать один из четырех вариантов препятствий. Кстати о мышке…

Мышь – это уже конец 90-х

Мыши, разумеется, были у всех, но до середины 90-х пользовались ими лишь в Windows 3. 11, графических пакетах и еще небольшом числе игр. В Wolf и Doom рубились только с клавиатуры. Да и в DOS-среде мышь была не особо нужна. Поэтому в Borland модуль работы с мышью даже не включали в стандартную поставку. Его надо было искать по знакомым, которые разводили руками и в ответ восклицали «а нафига он тебе?».

Однако найти модуль для опроса мышки – это лишь половина дела. Чтобы мышью клацать по экранным кнопкам, их надо было нарисовать. Причем в двух вариантах (нажатую и не нажатую). У не нажатой кнопки верх светлый, а под ней тень. У нажатой наоборот. И отрисовать затем на экране трижды (не нажатая, нажатая, потом опять не нажатая). Плюс не забыть поставить задержки на отображение, ну и спрятать курсор.

Например, обработка главного меню в коде выглядела вот так:

Звук – только пищалка PC Speaker

Отдельная история со звуком. В начале девяностых клоны Sound Blaster только готовились к своему победному шествию, и большинство приложений работали лишь со встроенным динамиком. Максимум его возможностей – это одновременное воспроизведение только одного тона. И именно это позволял сделать Turbo Pascal. Через процедуру sound можно было «попищать» разными частотами, чего достаточно для звуков выстрелов и взрывов, но для музыкальной заставки, как тогда было модно, это все не подходило. В итоге нашлось весьма хитрое решение: в собственном архиве софта обнаружился «экзешничек», скачанный когда-то с какой-то BBS-ки. Он умел творить чудеса – воспроизводить несжатые wav-ы через PC Speaker, причем делал это из командной строки и не имел собственно интерфейса. Все, что нужно было – это вызвать его через паскалевскую процедуру exec и проследить, чтобы эта конструкция не рухнула.

В итоге забойный музон на заставке появился, но с ним вышла забавная штука. В 1996 году у меня была система на Pentium 75, раскочегаренным до 90. На нем все работало прекрасно. В вузе же, где нам на второй семестр поставили Pascal, в учебном классе стояли видавшие виды «трешки». По договоренности с преподавателем я потащил на второе занятие эти танчики, чтобы получить зачет и больше туда не ходить. И вот, после запуска из спикера повалил громкий рев вперемешку с булькающими гортанными звуками. В общем, 33-мегагерцовой «трешке» DX оказалось не под силу нормально крутить тот самый «экзешничек». Но в остальном все было нормально. Конечно, не считая заторможенного опроса клавиатуры, который портил весь геймплей вне зависимости от производительности ПК.


Но основная проблема не в «Паскале»

В моем понимании «Танчики» — это максимум, что можно было выжать из Turbo Pascal без ассемблерных вставок. Из явных недостатков конечного продукта – медленный опрос клавиатуры и медленная отрисовка графики. Усугубляло ситуацию крайне малое число сторонних библиотек и модулей. Их можно было сосчитать по пальцам одной руки.

Но больше всего меня расстраивал подход в школьном образовании. Детям никто тогда не рассказывал о преимуществах и возможностях других языков. На уроках практически сразу начинали говорить про begin, println и if, что запирало учеников внутри бейсико-паскалевской парадигмы.

Оба эти языка можно считать исключительно учебными. Их «боевое» применение — редкое явление.

Зачем учить старшеклассников фейковым языкам – для меня загадка. Пусть они более наглядные. Пусть разновидности «Бейсика» кое-где используются. Но, в любом случае, если человек задумает связать свое будущее с программированием, ему придется учить с нуля другие языки. Так почему бы детям не ставить те же учебные задачи, но только уже на нормальной платформе (языке), в рамках которой они могли бы развиваться дальше самостоятельно?

Кстати о задачах. В школе и институте они всегда были абстрактные: посчитать то-то, построить функцию, нарисовать что-то. Я учился в трех разных школах, плюс у нас был «Паскаль» на первом курсе института, и ни разу преподаватели не ставили сколь-нибудь реальной прикладной задачи. Например сделать записную книжку или еще что-то полезное. Все было надуманное. А когда человек месяцами решает пустые задачи, которые потом идут в корзину… В общем, из института люди уже выходят выгоревшими.

Кстати, на третьем курсе того же вуза нам в программу поставили «плюсы». Вроде и дело благое, но народ был уставший, наевшийся фейков и «учебных» задач. Энтузиазма, как в первый раз, ни у кого не наблюдалось.

P.S. Погуглил на тему того, какие языки сейчас преподают в школах на уроках информатики. Все как и 25 лет назад: Basic, Pascal. Единичными вкраплениями идет Python.

3. Программирование на паскале

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

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

В Турбо Паскале, в отличие от стандарта, возможно следующее:

• отсутствие заголовка программы;

• разделы Const, Type, Var, Label могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколько угодно раз.

Примеры программ. Уже было сказано, что Паскаль разрабатывался Н. Виртом как учебный язык. Основной принцип, заложенный в нем, — это поддержка структурной методики программирования. Этот же принцип лежит в основе псевдокода, который мы здесь называем Алгоритмическим языком (АЯ). По сути дела, расхождение между АЯ и Паскалем заключается в следующем: АЯ — русскоязычный, Паскаль — англоязычный; синтаксис Паскаля определен строго и однозначно в отличие от сравнительно свободного синтаксиса АЯ.

Запись программы на Паскале похожа на английский перевод алгоритма, записанного на Алгоритмическом языке. Сравните алгоритм деления простых дробей, записанный на АЯ, с соответствующей программой на Паскале.

Здесь использовано следующее равенство:

Заголовок программы начинается со слова Program (программа), за которым следует произвольное имя, придуманное программистом (division — деление). Раздел описания переменных начинается со слова Var (variables — переменные), за которым следует список переменных. Тип указывается после двоеточия словом Integer — целый. Начало и конец раздела операторов программы отмечаются словами Begin (начало) и End (конец). В конце программы обязательно ставится точка.

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

Операторы присваивания в Паскале записываются так же, как в АЯ. Знак умножения — * (звездочка).

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

Необходимо строгое соблюдение правил правописания (синтаксиса) программы. В частности, в Паскале однозначно определено назначение знаков пунктуации. Точка с запятой (;) ставится в конце заголовка программы, в конце раздела описания переменных, после каждого оператора. Перед словом End точку с запятой можно не ставить. Запятая (,) является разделителем элементов во всевозможных списках: списке переменных в разделе описания, списке вводимых и выводимых величин.

Строгий синтаксис в языке программирования необходим прежде всего для транслятора. Транслятор — это программа, которая исполняется формально. Если, допустим, разделителем в списке переменных должна быть запятая, то любой другой знак будет восприниматься как ошибка. Если точка с запятой является разделителем операторов, то транслятор в качестве оператора воспринимает всю часть текста программы от одной точки с запятой до другой. Если вы забыли поставить этот знак между какими-то двумя операторами, то транслятор будет принимать их за один, что неизбежно приведет к ошибке.

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

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

«Оттранслируем» алгоритм вычисления факториала натурального числа (N!) на Паскале.

Из этого примера, во-первых, видно, как записывается на Паскале оператор цикла с предусловием (цикл-пока):

While <условие выполнения> Do <тело цикла>

(While — пока, Do — делать). Если тело цикла содержит последовательность операторов, то говорят, что оно образует составной оператор, в начале и в конце которого надо писать Begin и End

Служебные слова Begin и End часто называют операторными скобками, которые объединяют несколько операторов в один составной. Если же тело цикла — один оператор (не составной), то операторных скобок не требуется. Тогда транслятор считает, что тело цикла заканчивается на ближайшем знаке «;».

Рассмотрим еще один пример программы — решение квадратного уравнения.

В этой программе по сравнению с предыдущими появилось много новых элементов. Имя вещественного типа в Паскале — real.

Цикл с постусловием (цикл-до) программируется оператором

Repeat <тело цикла> Until <условие окончания>

(здесь Repeat — повторять, Until — до). Тело цикла может быть как одиночным, так и составным оператором, однако употребления Begin и End не требуется, поскольку сами слова Repeat и Until выполняют роль операторных скобок.

Знак не равно в Паскале пишется так: <>, знак больше или равно: >=.

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

Ветвление в Паскале программируется с помощью условного оператора, который имеет следующую форму:

If <условие> Then <оператор 1> Else «oператор 2>

(здесь If — если, Then — то, Else — иначе). Операторы 1 и 2 могут быть как простыми, так и составными. Составной оператор следует заключать в операторные скобки Begin и End.

Так же, как и в Алгоритмическом языке, возможно использование неполной формы условного оператора:

if <условие> then <оператор>

Характерной чертой данной программы является использование в тексте комментариев. Комментарий — это любая последовательность символов, заключенных в фигурные скобки {…}. Можно употреблять также следующие ограничители комментариев (*…*). Комментарий не определяет никаких действий программы и является лишь пояснительным текстом. Он может присутствовать в любом месте программы, где можно поставить пробел

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

Удачное использование комментариев — признак хорошего стиля программирования.

Чтобы выполнить программу на ЭВМ, ее нужно ввести в память, оттранслировать и исполнить. Для того чтобы проделать всю эту работу, на компьютере должны быть специальные средства программного обеспечения. На ПК они составляют систему Турбо Паскаль.

CAP: автоматизированный инструмент самооценки для проверки программ на языке Pascal на наличие ошибок синтаксиса, логики и стиля title={CAP: автоматизированный инструмент самооценки для проверки программ Pascal на наличие ошибок синтаксиса, логики и стиля}, автор={Томас Майкл Шорш}, booktitle={SIGCSE ’95}, год = {1995} }

  • T. Schorsch
  • Опубликовано в SIGCSE ’95 15 марта 1995
  • Информатика

Студенты-программисты испытывают трудности с поиском и исправлением синтаксических, логических и стилевых ошибок в своих программах. Анализатор кода для Pascal (CAP) анализирует программы, использующие подмножество языка Pascal, и предоставляет удобную для пользователя информацию о найденных ошибках. В этой статье описывается CAP и сообщается о его использовании при обучении вводному программированию в Академии ВВС США.

Просмотреть на ACM

doi.org

Улучшение синтаксических сообщений об ошибках кажется неэффективным

  • Пол Денни, Эндрю Лакстон-Рейли, Дэйв Карпентер
  • Информатика

    ITiCSE ’14

  • 2014

ошибка, которая произошла, и то, как такого рода ошибки могут быть исправлены, и не находит значительного эффекта.

Коды программ автоматической оценки студентов

  • Ахмед А. Хашим
  • Информатика, образование

  • 2006

В настоящее время существует несколько языков программирования, которые трудно понять начинающему программисту. По словам Робинса [RRR03], у студентов часто возникают трудности при построении…

Поддержка студентов на курсах программирования на C++ с автоматической оценкой стиля программы

  • Кирсти Ала-Мутка, Тони Уймонен, Ханну-Матти Ярвинен
  • Информатика

    Дж. Инф. Технол. Образовательный

  • 2004

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

Обнаружение неправильно сформированных шаблонов стиля программирования

  • Рика Сэкимото, К. Кайдзири
  • Информатика

  • 1998

Установлено, что реализованная система распознавания планов для поиска исходного кода способна диагностировать различные аспекты стиля программирования, поэтому ее можно использовать как эффективный инструмент диагностики стиля программирования.

Первый взгляд на поведение новичка при компиляции с использованием BlueJ

  • М. Джадуд
  • Геология

    Вычисл. науч. Образовательный

  • 2004

Изучая поведение начинающих программистов при компиляции, были определены наиболее распространенные ошибки, с которыми сталкиваются студенты, использующие BlueJ в вводном курсе авторов по объектно-ориентированному программированию, и применены к будущей разработке BlueJ и методологий обучения с участием его использование на уроке.

Обладает студентам и уверенности в здании к начинающим программистам через Gauntlet

  • T. Flowers, C. Carver, J. Jackson
  • Образование

    34 -й ежегодные границы в образовании, 2004. FIE 2004.

  • 2004

.64. Gauntlet — это программа, которая предварительно обрабатывает исходный код студента и объясняет с точки зрения непрофессионала каждую синтаксическую ошибку в предварительном компиляторе, а также находит множество распространенных семантических ошибок на уровне новичка, которые не обязательно приводят к синтаксическим ошибкам.

Исправление первого, игнорирование остальных: работа с несколькими сообщениями об ошибках компилятора

  • 2018
  • Анализ более 21 миллиона сообщений об ошибках компилятора из набора данных Blackbox показывает, что ранги и частоты, полученные при рассмотрении всех сообщений об ошибках, в целом соответствуют ранее опубликованным спискам, но когда авторы рассматривают только первые сообщения, эти ранги и частота разная.

    Адаптивная система для автоматической оценки структурированной программы C ++ с использованием Inter-Lingua и Dictionary

    • Maxwell Christian, Bhushan Triedi
    • Компьютерная наука

    • 2021

    . структурированной программы на C++ с точки зрения структурных и контекстных требований к требуемым компонентам программы.

    Система диагностики стиля программирования с использованием шаблонов программ

    • Rika Sekimoto, K. Kaijiri
    • Информатика

    • 1999

    С помощью этой системы возможна проверка различных рекомендаций по стилю.

    Поддержка прямой разметки и оценки студенческих проектов в режиме онлайн

    • Х. Вастани
    • Образование

    • 2004

    Эта диссертация посвящена исследованию механизма обратной связи TA, который упростит процесс выставления оценок для профессоров и ассистентов преподавателей. студенческие программы непосредственно через веб-браузер.

    ПОКАЗАНЫ 1-10 ИЗ 12 ССЫЛОК

    СОРТИРОВАТЬ ПОРелевантность Наиболее влиятельные документыНедавность

    Внедрение средства отладки логических ошибок в программах на Паскале

    • T. Lukey, K. Loose, David R.C. Hill
    • Информатика

      SIGCSE ’87

    • 1987

    Утилита представляет собой исходное меню со встроенными средствами отладки и отображением пользовательской информации. многооконный формат и для поиска логических ошибок в синтаксически правильных программах.

    Средства автоматической оценки программ на Паскале

    • М. Рис
    • Информатика

      SIGP

    • 1982

    Представлена ​​философия программы, предназначенной для автоматической оценки стиля программ Pascal и выставления оценок, обсуждаются результаты, полученные на фактических студенческих курсах, и предлагаются некоторые расширения, которые могут привести к дополнительным средствам оценки.

    Но моя программа работает! Правила дискурса для начинающих программистов

    • Сай-Николь Джони, Э. Солоуэй
    • Информатика

    • 1986

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

    Ditran — Компилятор, подчеркивающий диагностику

    • P. Moulton, M.E. Muller
    • Компьютерная наука

      CACM

    • 1967

    Ditran Diagnosticif fortran) Основная для оборота для ASA For Trastran Erranceailtial For Trustnecailtion Sight Coing Errantiability For Trastranee Errancobility For Trastranee Errancobility For For Trastranee Errancobility For Trustranee Errancobility For Trustranee. во время компиляции и во время выполнения программы. Потребность в…

    Разбиение программы на срезы

    В частности, поиск срезов с минимальным количеством операторов в общем случае неразрешим, но для нахождения приблизительных срезов достаточно использования анализа потока данных.

    ПРОГРАММНОЕ ПРОГРАММНЫЕ ПЕРЕДЕЛЕНИЯ И КОНСТРУКЦИЯ

    • Ричард Дж. Миара, Джойс А. Муссельман, Хуан А. Наварро, Б. Шнайдерман
    • Психология

      CACM

    • 1983

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

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

    Влияние структурированного редактирования на вводное обучение информатике: полученные результаты

    • Д. Голденсон
    • Образование

      SGCS

    • 1989

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

    Ошибки новичка: верны ли народные мудрости?

    • Дж. Шпорер, Э. Солоуэй
    • Образование

      CACM

    • 1986

    Оценка двух народных мудростей служит для выяснения основных или «глубоко структурных» причин ошибок новичка.

    Style: автоматический анализатор стиля программы

    • Al Lake, C. Cook
    • Education

      SGCS

    • 1990

    Реструктуризация операторов, содержащих Pascal Programs | Компьютерный журнал

    Фильтр поиска панели навигации The Computer JournalЭтот выпускЖурналы BCSИнформатикаКнигиЖурналыOxford Academic Термин поиска мобильного микросайта

    Закрыть

    Фильтр поиска панели навигации The Computer JournalЭтот выпускЖурналы BCSИнформатикаКнигиЖурналыOxford Academic Термин поиска на микросайте

    Расширенный поиск

    Журнальная статья

    М. Х. Уильямс,

    М. Х. Уильямс

    Ищите другие работы этого автора на:

    Оксфордский академический

    Google ученый

    Г. Чен

    Г. Чен

    Ищите другие работы этого автора на:

    Оксфордский академический

    Google ученый

    Компьютерный журнал , том 28, выпуск 2, 1985 г., страницы 134–137, https://doi.org/10.1093/comjnl/28.2.134

    Опубликовано:

    01 января 1985 г.

    19 PDF

  • Разделенный вид
    • Содержание статьи
    • Рисунки и таблицы
    • видео
    • Аудио
    • Дополнительные данные
  • Цитировать

    Cite

    М. Х. Уильямс, Г. Чен, Реструктуризация программ на Паскале, содержащих операторы Goto, The Computer Journal , том 28, выпуск 2, 1985 г., страницы 134–137, https://doi.org/10.1093/comjnl/ 28.2.134

    Выберите формат Выберите format.ris (Mendeley, Papers, Zotero).enw (EndNote).bibtex (BibTex).txt (Medlars, RefWorks)

    Закрыть

  • Разрешения

    • Электронная почта
    • Твиттер
    • Фейсбук
    • Подробнее
  • Фильтр поиска панели навигации The Computer JournalЭтот выпускЖурналы BCSИнформатикаКнигиЖурналыOxford Academic Термин поиска мобильного микросайта

    Закрыть

    Фильтр поиска панели навигации The Computer JournalЭтот выпускЖурналы BCSИнформатикаКнигиЖурналыOxford Academic Термин поиска на микросайте

    Advanced Search

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

    *

    Кому адресована корреспонденция.

    §

    Департамент компьютерных наук, Хериот-Ватт, 79 Грассмаркет, Эдинбург Eh2 2HJ

    Этот контент доступен только в формате PDF.

    Раздел выдачи:

    Артикул

    Скачать все слайды

    Реклама

    Цитаты

    Альтметрика

    Дополнительная информация о метриках

    Оповещения по электронной почте

    Оповещение об активности статьи

    Предварительные уведомления о статьях

    Оповещение о новой проблеме

    Получайте эксклюзивные предложения и обновления от Oxford Academic

    Ссылки на статьи по телефону

    • Последний

    • Самые читаемые

    • Самые цитируемые

    Оценка логического вывода о членстве с помощью состязательной устойчивости

    Практическая стеганографическая коммуникация на основе блокчейна с помощью состязательного ИИ: пример в биткойне

    AWFC: предотвращение атак с переворачиванием меток на пути к федеративному обучению для интеллектуального Интернета вещей

    Эффективное обнаружение операционных аномалий в крупномасштабных инфраструктурах данных IoT с помощью модели прогнозирования на основе GAN

    Расширенная тематическая модель семантического встраивания для моделирования пользовательского текстового контента в социальных экосистемах

    Реклама

    настоящих программистов не используют Pascal

    настоящих программистов не используют Pascal [Письмо в редакцию 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 руководство и Принципы работы открыты для некоторых особенно интересные страницы.
    • К стене приклеен календарь Снупи для линейного принтера. 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] Фейрштейн, Б., «Настоящие мужчины не едят пирог с заварным кремом», Нью-Йорк, Pocket Books, 1982.

    [2] Вирт, Н., «Алгоритмы + структуры данных = программы», Прентис Холл, 1976.

    [3] Илсон, Р., «Недавние исследования в области обработки текста», IEEE Trans. проф. Комм., Том. ПК-23, № 4, 4 декабря 1980 г.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *