Spectrum Progress #03
01 апреля 1998

Энциклопедия - обзор языков программирования.

<b>Энциклопедия</b> - обзор языков программирования.
  Обилие языков  программирования, существующих
на  сегодняшний день, доказывает, что нет языка
_идеального_во_всех_отношениях_.  Но  это  же и
доказывает,  что  всегда  велись  поиски такого
языка.  В  предлагаемом  вашему вниманию обзоре
дается не только краткое описание того или ино-
го языка,  но также  сделана попытка проследить
в каком направлении  шло создание  языков прог-
раммирования.
  Здесь   не   упамянуты   наиболее   известные
спектрумистам  Бейсик и Ассемблер. О них разго-
вор особый, ведется он давно и, надеемся, будет
вестись и дальше.

      БОЛЬШЕ ПРОГРАММ - ХОРОШИХ И РАЗНЫХ!
   БОЛЬШЕ ПРОГМЕЙКЕРОВ - ХОРОШИХ И КЛАССНЫХ!


  (C) Linker, 1998.  


 
 
 
 


                 F O R T R A N

  Фортран   (от  англ.  FORmula  TRANslating  -
транслятор формул).
  Этот,  самый  древний из алгоритмических язы-
ков,  разработан фирмой IBM в середине 50-х го-
дов,  когда  компьютеры были громоздки и медли-
тельны,  а  их  начинка  дорогостоящей. Поэтому
традиционный  Фортран экономно обращается с па-
мятью.
  Язык ориентирован на решение научно-техничес-
ких задач и особое внимание здесь уделено удоб-
ному представлению формул. Основу языка состав-
ляют  арифметические операторы, соответствующие
по  своему синтаксису традиционной записи мате-
матических  выражений.  В  дополнение к этому в
языке  имеются  средства представления условий,
близкие к представлению логических выражений И,
ИЛИ,  НЕ  и  средства представления циклов. Су-
ществуют и достаточно развитые средства формат-
ного  ввода-вывода  числовых  данных,  а  также
средства  разбиения сложных алгоритмов на более
простые  за счет явного определения подпрограмм
и функций.
  Описания  данных  в Фортране ориентированы на
представление  числовой  информации.  Поэтому и
типы  данных просты: это целые и действительные
числа, а также массивы из таких чисел.
  На  современный  взгляд  уровень  Фортрана не
очень  высок.  Главным недостатком программисты
считают   слабую  возможность  структурирования
программ,  написанных  на  этом  языке. То есть
программы  нельзя формировать из отдельных, со-
вершенно независимых процедур и функций, каждая
из которых призвана выполнять определенную, ог-
раниченную  задачу. Такая возможность облегчила
бы создание больших программных комплексов, от-
дельные части которых создаются разными людьми.
  В целом, популярность Фортрана сильно уступа-
ет  более  молодым языкам высокого уровня, хотя
имеется   огромное   число   готовых  программ,
большинство  из  которых написаны физиками, для
собственных нужд.
  Для  Spectrum'а Фортран не создавался по-при-
чине  ориентации  языка на инженерные и научные
расчеты.

                   A L G O L

  Алгол  (от англ. ALGOrithmic Language - алго-
ритмический язык).
  Первая версия языка появилась в стенах одного
из  американских  вузов в 1958 году. Изначально
разработчики  Алгола  стремились  создать  язык
пригодный  для решения более широкого круга за-
дач по сравнению с Фортраном.
  Результатом  их  работы  стал не только новый
язык, но и научное обоснование направления язы-
ков  высокого уровня. Достаточно будет сказать,
что в рамках разработки и реализации языка, бы-
ла доведена до логического завершения концепция
операторных  алгоритмических  языков  с заранее
фиксированными типами данных и блочной структу-
рой,  а  также были созданы методы трансляции с
алгоритмических языков высокого уровня.
  По  составу исполняемых операторов Алгол бли-
зок  к Фортрану. Здесь почти те же средства за-
писи арифметических выражений. Практически сох-
ранен,  хотя и приближен к математической нота-
ции,  синтаксис  логических выражений. Но Алгол
не  зря носит такое имя - алгоритмический язык.
Именно  в Алголе появилось понятие блока и воз-
можность  рекурсии, то есть определение очеред-
ного  значения  функции через ранее вычисленные
значения этой же функции. Этот интересный прием
позволяет составлять эффективные и в то же вре-
мя короткие программы. Кроме того, программа на
Алголе записывается в свободном формате, опера-
тор  может  быть  прерван в любом месте текущей
строки  и продолжен без каких бы то нибыло спе-
циальных указаний в любом месте следующей стро-
ки.
  Отличает Алгол и то, что практически с самого
начала  это был алгоритмический язык, синтаксис
и  семантика  которого были закреплены междуна-
родным стандартом.
  Но,  как это иногда бывает, язык "опоздал", и
деньги,  уже  затраченные  многочисленными вла-
дельцами  компьютеров  на  приобретение фортра-
новского ПО, остановили развитие Алгола. Он так
и  остался языком теории, но принципы, заложен-
ные в Алгол, были положены в основу современных
языков - ПЛ/1, Паскаля и Си.

                   C O B O L

  Кобол (от англ. COmmon Business Oriented Lan-
guage - язык, ориентированный на общий бизнес).
  Этот  язык был разработан в начале 60-х годов
в США для исследований в экономической сфере.
  Язык  позволяет эффективно работать с большим
количеством  данных,  он насыщен разнообразными
возможностями  поиска, сортировки и распределе-
ния.  О программах на Коболе, основанных на ши-
роком использовании английского языка, говорят,
что  они понятны даже тем, кто не владеет Кобо-
лом,  поскольку тексты на этом языке программи-
рования  не  нуждаются в каких-либо специальных
комментариях.  Подобные программы принято назы-
вать самодокументирующимися.
  К  числу  других плюсов Кобола обычно относят
его структурированность. К минусам относят воз-
можность  запрограммировать лишь простейшие ал-
гебраические  вычисления. Для инженерных расче-
тов этот язык не годится.
  Довольно мощные компиляторы с Кобола разрабо-
таны для персоналок. Некоторые из них столь эф-
фективны, что программу, отлаженную  на ПК, не-
трудно перенести на большие компьютеры. К сожа-
лению  такой  возможности  лишены  пользователи
Spectrum'а  - версий для нашей платформы не су-
ществует.

                   P L / 1

  ПЛ/1  (от англ. Programming Language 1 - язык
программирования один).
  Язык  создавался фирмой IBM в начале 60-х го-
дов  и стал результатом одной из первых попыток
создать  универсальный язык, используя популяр-
ные качества других языков.
  ПЛ/1 получил в наследство черты Фортрана, Ал-
гола  и  Кобола.  Язык напоминает конструктор с
большим числом деталей - пользователю достаточ-
но  освоить  только те части языка, которые ему
практически  необходимы. Программисту, начинав-
шему  с Бейсика, легче изучить именно ПЛ/1, чем
скажем,  Паскаль  или  Си.  Однако, несмотря на
это, а также на то, что ПЛ/1 попрежнему популя-
рен  на  больших  компьютерах, он так и не стал
универсальным языком. В то же время цель, кото-
рую  преследовали разработчики языка, во многом
определила  конструкцию ПЛ/1, - большинство его
операторов громоздки. "Живой динозавр в Вавило-
не  языков программирования", как его прозвали,
ПЛ/1  в  полном  объеме  так и не реализован на
персональных  компьютерах.  Не найдете вы его и
на Speccy.

                  P A S C A L

  Паскаль  (назван  в честь английского ученого
Блеза Паскаля).
  В  начале  70-х  годов  щвейцарский профессор
Никлаус  Вирт  разработал  этот  алголоподобный
язык, вобравший в себя все лучшие проектные ре-
шения предшественника.
  Это  первый,  достойный образец языка истинно
структурного программирования, программы в Пас-
кале  формируются из отдельных независимых про-
цедур и функций, которые можно легко включать в
другие программы.
  Но главной особенностью Паскаля можно назвать
то,  что здесь впервые была воплощена концепция
абстрактных  типов данных. Если раньше все дан-
ные, преобразования которых описывались в прог-
рамме,  относились  к одному из заранее опреде-
ленных типов (целые, действительные и т.п.), то
в  этом языке были введены средства конструиро-
вания  новых типов данных. Если вас не удовлет-
воряют типы данных, которые имеются в языке, вы
сможете ввести новые (например интервальный тип
данных)  - это существенно упрощает претворение
замысла в текст программы. Поэтому Паскаль наи-
более удобен для программирования широкого кру-
га  прикладных задач. Его также считают языком,
пригодным  для  обучения  программированию  как
систематической  дисциплине, основанной на фун-
даментальных понятиях, ясно и естественно отра-
женных в этом языке.
  Паскаль  получил  широкое  распространение на
персональных  компьютерах  и  сейчас уступает в
популярности  пожалуй  только Бейсику, да и то,
по-видимому, ненадолго. Если Паскаль и критику-
ют,  то  обычно  упомянают  его  излишнюю  фор-
мальность,  жесткие  и  мелочные  требования  к
программисту. Попробуйте догадаться, привержен-
цы  какого  языка  так  "капризничают"? В конце
концов,  был создан Турбо-Паскаль, претендующий
сегодня на популярность Турбо-Бейсика.
  Но  это  у "них", а что у нас, на Spectrum'е?
На  первый  взгляд дела неплохи. Фирма "Hisoft"
выпустила  в  незапамятные времена (1983-8Чгг.)
несколько  версий  Паскаля  для  Speccy, но все
они,  даже с доработками не годятся для написа-
ния действительно серьезной программы. Сказыва-
ется нехватка  памяти, да быстродействие отком-
пилированных программ удручает.


                      C

  Си (от англ. C - третья буква алфавита).
  Язык  Си появился в начале 70-х годов и явля-
ется  примером  удачного  влияния  практических
потребностей   системного  программирования  на
разработку новых языков.
  Изначально он создавался как инструментальное
средство  для  реализации  и развития известной
операционной системы UNIX для компьютеров фирмы
DEC, но популярность его быстро переросла рамки
конкретной машины, операционной системы и задач
системного  программирования.  И сейчас язык Си
можно  по  праву назвать одним из универсальных
языков программирования.
  Это едвали не единственный язык, который поз-
воляет решать такие задачи, которые в ином слу-
чае  потребовали бы использования ассемблера. С
одной стороны, в нем имеются средства определе-
ния  новых типов данных, широкий набор операто-
ров,  характерных  для  языков высокого уровня,
модульность  и структурность, а с другой - в Си
включены  средства  программирования  почти  на
уровне ассемблера (например, побитовые операции
и  работа  с указателями). Хотя язык требует от
программиста  дисциплины,  он  не  строг в фор-
мальных претензиях и допускает краткие формули-
ровки.
  Си - это сравнительно небольшой языковой сер-
дечник,  который легко изучить. Несколько труд-
нее  освоить  способ написания программ на этом
языке.  Необходимые  расширения  определяются в
своем  большинстве  как  функции  пользователя.
Язык как бы обогащается все новыми конструкция-
ми,  необходимость  в которых возникает по ходу
программирования, то есть программист, работаю-
щий  на Си, обладает редкой возможностью после-
довательно уточнять свою программу.
  На  практике любая система Си содержит доста-
точно  обширную библиотеку функций, которые мо-
гут понадобиться для решения типичных задач.
  Си-программы компактны и эффективны. Машинные
программы, которые порождает компилятор Си, бо-
лее компактны и выполняются быстрее, чем анало-
гичные после компиляции Паскалем.
  Практически  для  каждого  типа  персональных
компьютеров  найдуться свои версии языка Си. Не
обойден  вниманием и Spectrum. Имеются по край-
ней  мере две версии компилятора Си, выпущенные
в 1984 году фирмой "Hisoft". Компилятор создает
блоки  машинных  кодов, самостоятельно работаю-
щие,  и  не требующие присутствия компилятора в
памяти Speccy.
  В пакете с Си распространяются системные биб-
лиотеки функций (например, max, min, abs, peek,
poke,  free,  swap,  move и т.д.).
  Возможно,  Си  не  самый  подходящий язык для
знакомства  с  миром  программирования, но если
вам  тесны  рамки Бейсика и вы уже приглядывае-
тесь  к  ассемблеру, то, возможно, Си покажется
вам более удобным.

               M O D U L A - 2

  Модула-2 (от англ. Modula-2).
  Этот  язык  был  разработан вслед за Паскалем
все тем же профессором Н.Виртом.
  Язык  лишен  некоторых слабых мест Паскаля. В
Модуле-2  появились  черты,  свойственные языку
Си,  позволяющие заглянуть "внутрь" компьютера.
Этот  язык способен удовлетворить самых придир-
чивых  специалистов  по алгоритмическим языкам.
Модулу-2  легко осваивают все, кто программиро-
вал  на  Паскале.  Специалисты  прочат Модуле-2
высшее  место в иерархии языков высокого уровня
для  персональных  компьютеров,  тем более, что
язык  расчитан на организацию параллельных про-
цессов:  это обеспечивает исключительно высокое
быстродействие готовой программы.
  В  отличие  от  Паскаля с Модулой-2 Speccy не
повезло. Быть может этот язык, создай его  кто-
нибудь  на  основе Паскаля, сменил бы привычный
нам Бейсик.

                  F O R T H

  Форт (от англ. forth - вперед).
  Язык был создан в начале 70-х годов Ч.Муром и
Э.Разером.  Изначально Форт создавался как язык
для решения задач управления, но с момента сво-
его появления, его популярность продолжала рос-
ти  и сегодня Форт - это система программирова-
ния:  операционная система, интерпретатор, ком-
пилятор,  ассемблер,  текстовый редактор и сер-
висные  программы,  где все компоненты являются
расширением Форта и написаны на Форте.
  Форт   является  стек-ориентированным  языком
программирования,  в  основу  которого положено
использование  польской обратной записи, основ-
ным  правилом  которой является: сначала числа,
потом операторы.
  Главными  понятиями любого диалекта Форта яв-
ляются "слово" и "стек". Идея Форта, - опираясь
на небольшой исходный словарь, определять новые
слова, включать их в библиотеку и через них оп-
ределять новые слова. Последнее слово, получен-
ное  таким образом, - это и есть программа, ре-
шающая поставленную задачу
  Говоря  о  недостатках,  следует сказать, что
программы на Форте тяжело читать не посвященным
в  таинства этого языка, а математические выра-
жения получаются не очень наглядными.
  Форт   широко   используется  в  персональных
компьютерах.  На  Spectrum'е  наиболее известна
версия FP5O, а также Форт-83 в среде IS-DOS.

                     . . .

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

                    L I S P

  Лисп  (от  англ.  LISt  Processing language -
язык преобразования списков).
  Разработан   в   Стенфордовском  университете
Д.Маккарти  в  конце 50-х годов. Этот язык стал
основой ряда программных реализаций интеллекту-
альных  систем  и  дал толчок к разработке мно-
жества специализированных языков искусственного
интеллекта и языков представления знаний.
  Лисп  ориентирован  на динамическую обработку
данных.  Кстати, нет особых различий между дан-
ными  и программами Лиспа, и те и другие счита-
ются  списками. Язык позволяет программисту эф-
фективно перерабатывать списки. Устройство язы-
ка  позволяет  доопределять  новые конструкции.
Этим  Лисп  несколько  напоминает Форт, но есть
большое  отличие, - Лисп-программа способна пе-
рерабатывать сама себя. Это позволяет использо-
вать язык, решая задачи для которых отсутствует
четкий  алгоритм  решения.  Интересно, что если
обычно язык создают, ориентируясь на конкретную
машину или класс машин, то в данном случае, для
новых   версий   Лиспа   появились  специальные
Лисп-компьютеры,   архитектура   которых  соот-
ветствует особенностям языка.
  Для  персональных  компьютеров создано немало
версий,  большинство из которых приобрели черты
алгоритмических языков и значительно отклоняют-
ся  от "чистого" Лиспа. Существует версия и для
Spectrum'а,  но неизвестно, пробовал ли кто-ни-
будь у нас в стране писать на нем Лисп-програм-
мы,  впрочем,  как  и  на  следующем  известном
функциональном языке.

                  P R O L O G

  Пролог (от англ. PROgramming in LOGic - логи-
ческое программирование).
  Разработан  А.Калмерауэром в Марсельском уни-
верситете в 60-х годах и базируется на логичес-
ком исчислении. Язык создавался как европейский
противовес американскому Лиспу.
  Основная  концепция  языка  - переводить фор-
мальную  логическую  задачу  в текст программы.
Компьютер должен самостоятельно выводить желае-
мый  результат  из фактов и правил. При этом он
не получает от программиста путь решения. Прог-
раммист лишь определяет объекты и относящиеся к
ним  логические  связи.  Как  и Лисп, Пролог не
различает  данные и программу. Спецификой языка
можно  назвать то, что здесь имеется встроенная
процедура поиска решений на И/ИЛИ графах.
  Пролог  в полном объеме предъявляет к компью-
теру  очень  жесткие  требования,  так  что ис-
пользующие  его  машины  оказываются на пределе
возможностей.  Для Speccy был создан Микро-Про-
лог имеющий дополнительные библиотеки, но в си-
лу  вышесказанного не стоит ждать от него слиш-
ком многого.

                     . . .

  Данный  обзор не претендует на полноту списка
языков  программирования.  За  рамками остались
малораспространенные,    узкоспециализированные
или  те языки, о которых автор этого опуса, как
говориться,  "ни сном, ни духом". Например, при
сборе  материала  на  эту  тему, натолкнулся на
язык APL (Applied Programming Language), имену-
емый  не  иначе  как  язык сверхвысокого уровня
из-за  введения  в  него сверхмощных операций и
операторов.  Или  возьмем  другой язык - Occam,
предназначенный  для  деления решения задачи на
параллельно протекающие процессы на компьютерах
с транспьютером.

  Список используемой литературы.

  1. Информатика. Словарь. М. 1994.
  2. Фортран ЕС ЭВМ. Брич З.С. М. 1978.
  3. Язык программирования Си. Керниган Б.,
     Ритчи Д.  М. 1985.
  4. ZX Spectrum и TR-DOS для пользователей и
     программистов. Ларченко А., Родионов Н.
     СПб. 1994.
  5. Системные программы для ZX Spectrum.
     Григорьев О. Екатеринбург. 1993.
  6. Наука и жизнь. Журнал. Номера разных лет.


                    ───── 



Другие статьи номера:

От редакции - шпаргалка: описание управления журналом.

От редакции - авторы журналы.

Инструментарий - редактор уровней к игре Last Battle.

Инструментарий - описание коммандера Real Commander 1.4

Игротека - на чем мы летаем #1: обзор авиасимуляторов.

Игротека - на чем мы летаем #2: обзор авиасимуляторов.

Игротека - описание игры Cyrus 2: 128kb.

Игротека - описание игры Enterprise.

Энциклопедия - лучшие игры фирмы Ocean.

Энциклопедия - обзор языков программирования.

Железяка - новая плата для компьютера Скорпион: GMX.

Железяка - подробное описание компьютера Sprinter.

Новости - коротко о многом: "Черный Ворон", все же не будет последней игрой Славы Медноногова, ИНФОРКОМ приказал долго жить, у Spectrum Expert - хорошее будущее, "Легенда о Кирандии" никогда не появится на Speccy.

Новости - анонс игры "Огни Саламандры".

Новости - Спектрум Жив! "Hавигатор игрового мира" #9 - большая статья о Спектруме.

Водолей - повесть: Великий Эксперимент.

Водолей - словарь редактора.

Форум - Interner на Спектруме: терминальную программу для компьютера Scorpion, позволяющую работать в текстовом режиме со станциями BBS.

Форум - фирма Петерс и программисты.

Форум - Хартия Спектрумистов.

Обьявления и реклама - обьявления.

Обьявления и реклама - реклама.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
CREСITZb - Здeсь писaнo прo всeх ктo прилoжылся к fpl-10.
Железо - VICOMM - совместимый модем от MSD group.
Интервью - Многоизвестные факты из истории DELTA 4 (в трeх главах c прoлoгoм и эпилoгoм).
Статья - 1664.
Ликбез - полный дизассемблер ПЗУ (часть 16).

В этот день...   21 ноября