文档介绍:Э. Дейкстра. ”Дисциплинапрограммирования” 1
ПРЕДИСЛОВИЕРЕДАКТОРАПЕРЕВОДА
Программированиебогатоимногообразно. Ведькажетсянеттакойсферычеловеческойдеятель-
ности, гденельзябылобыспользойприменитьвычислительнуюмашинудляоценки, информаци-
онно-справочногообслуживания, планирования, моделированияит. п. Иэтомногообразиезадач
переходитвмногообразиепрограмм, которыедолжныразрабатыватьпрограммисты. Онипытаются
справитьсясэтиммногообразием, "заключив" еговпроблемно-ориентированныеязыкипрограм-
мирования. Языкивбираютвсебяспецифическиечертыконкретныхсферпрограммирования—
характерныеструктурыданных, принципыорганизациитипичныхпроцессов, соответствующую
терминологию—итакимобразомделаютсампроцесспрограммированияболееуниверсальным. Од-
новременноониосвобождаютпрограммистовотнеобходимостидетализироватьпрограммыдоуровня
слишкоммелкихмашинныхкомандидажеотнеобходимостизнатьособенностиконкретныхвычис-
лительныхмашин. Болеетого, операционныесистемыпризваныпревратитьвычислительныемаши-
ныизпредметапостоянногобеспокойствав"существа", которыесамизаботятсяопрограммистеи
готовыоказыватьвсяческиеуслугиемуиегопрограмме.
Итемнеменее, послетого, каклюбаяболееилименеесложнаязадачасформулирована(пусть
дажевадекватныхиудобныхтерминах) имашинавыбрана(пустьдажевсамомделеготоваяквсе-
возможнымуслугам), каждыйпрограммистсноваисноваостаетсяодиннаодинсосвоейсобственной
задачей: емунужносоставитьпрограмму! Выбрать, какименноследуетрасположитьисвязатьдан-
ныевпамяти, понять, какаяименнопоследовательностьоператоров, —способныхсделатьвсечто
угодноиоттогоодновременноиподатливыхиопасных—выполнитпоставленнуюзадачу. Икак
организоватьоператорывцикл, которыйбудетскаждымшагомприближатьмашинукнамеченной
цели. Выбрать, понять, изобрести, проверить, усомнитьсяиповторитьвсесначала.
Показательно, чтохотявтаких"внешних" разделахпрограммирования, какязыкиитрансля-
торы, операционныесистемыибазыданных, широкоразвиваетсяииспользуетсятеория(отматема-
тическойлингвистикиилогикидостатистикиитеории