Micro #12
12 января 1999

Машинные языки - Языки программирования.

<b>Машинные языки</b> - Языки программирования.
╔══════════════════════════════════════╗
║        Языки программирования.       ║▒
╚══════════════════════════════════════╝▒
  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

  Несмотря на то,что языков программирова-
ния  сегодня  более 500,их можно разделить
на 2 группы: в первую отнесем те языки,ко-
торые  позволяют  заложить в машину способ
решения  задачи (алгоритм),вторая группа -
это  логические функциональные языки,кото-
рые привлекают внимание в связи с исследо-
ваниями в области искусственного интеллек-
та.К  первой группе относятся ФорТран,Бей-
сик,Алгол,Си,Паскаль   и   т.д.,ко  второй
Лисп,Пролог,Лого и т.д.Первые представите-
ли  обеих  групп  появились одновременно в
50-е  годы.Одним из патриархов языков счи-
тают  Фортран.Фортран  (от  англ.  FORmula
TRANslating  System  -  система трансляции
формул)  ориентирован  на решение научно--
технических задач,был разработан IBM в се-
редине  50-х годов,что определило его осо-
бенности.В то время начинка компьютера бы-
ла  дорогой,поэтому  традиционный  Фортран
экономно  обращается с памятью и в нем от-
сутствует  возможность  косвенной  адреса-
ции.Он   плохо   поддается  структурирова-
нию.Программисты считают это его недостат-
ком.И  все  же  на Фортране в нашей стране
пишут  более  30  лет: среди причин машины
типа  IBM  и  огромное число готовых прог-
рамм.Одна  из  последних  версий - Фортран
8x.Бейсик (от англ. Beginner's All-Purpose
Symbolic  Instruction Code - универсальный
символический  код инструкций для начинаю-
щих) прямой потомок Фортрана и самый попу-
лярный язык программирования.Появился он в
1964  г.Назвать  автора сложно,но основная
заслуга в его появлении принадлежит амери-
канцам  Джону  Кемени  и  Томасу Курцу.Ин-
терпритатор  этого  языка занимал в памяти
ЭВМ 80-х годов не более 8 Кб,чем и привлек
к себе не только любителей,но и профессио-
налов.В отличии от Фортрана он обрабатыва-
ет  не только числовые,но и символьные пе-
ременные,поэтому  оказался  более  удобным
для  решения  повседневных  задач.Простота
Бейсика  обернулась трудностями структури-
рования,а   также   невозможностью  рекур-
сии.Сейчас  разработаны мощные компиляторы
Бейсика,которые дают богатую лексику,высо-
кое   быстродействие,а  также  возможность
структурного программирования (констркуция
WHILE  - WEND).Алгол (от англ. ALGOrithmic
Language  - алгоритмический язык) появился
почти  сразу же после Фортрана.Ему присущи
все  черты  алгоритмического  языка.В  нем
предусмотрена  возможность рекурсии.Однов-
ременно с языком были разработаны теорети-
ческие  критерии: способность к структури-
рованию,самодокументация   и   т.д.Принято
различать Алгол 60 (полностью отсутствова-
ли  средства  ввода-вывода) и более совер-
шенный  Алгол  68.Но как часто бывает язык
опоздал  и деньги затраченные на IBMовский
Фортран  остановили развитие Алгола.Он так
и   остался   языком   теории.Большую  из-
вестность  получили принципы впервые зало-
женные   в   Алгол.Они   легли   в  основу
ПЛ/1,Паскаля  и  Си.Си  (от  англ. C - 3-я
буква алфавита) был задуман как инструмент
для развития операционной системы Unix,ко-
торый  возник  в  начале 70-х годов.На тот
момент  Си  был главным орудием системного
программиста,он  позволял решать такие за-
дачи,которые  в ином случае потребовали бы
использование  Ассемблера.Язык  требует от
программиста  высокой дисциплина,но доспу-
кает  краткие формулировки.Си по сути язы-
ковой  сердечник,который  легко изучить,но
трудно  освоить  способ письма.Необходимые
расширения  опредляются  в нем как функции
пользователя.На  практике любая система Си
содержит  достаточно  обширную  библиотеку
функций,необходимость которых возникает по
ходу программирования.Привлекательная чер-
та  Си  - наличие структурности,модульнос-
ти,определение  типов  данных  и рекурсив-
ность.Практически  для  каждого  типа  ЭВМ
имеется  хотя  бы  одна версия компилятора
Си.Машинные программы,пораждаемые компиля-
тором,более    компактны   и   выполняются
быстрее,чем  те,что  генерирует компилятор
Паскаля,и  все  же  по общему мнению Си не
самый   подходящий  язык  для  начинающего
программиста.Пасклаль (Pascal - назван так
в  честь знаменитого математика Блеза Пас-
каля) явился первым образцом языка истинно
структурного  программирования.Однако при-
ходится  часто слышать упреки в адрес Пас-
каля   из-за   его   излишней  формальнос-
ти,жестких  и мелочных требованиях к прог-
раммисту.Иногда Паскаль сравнивают с квад-
ратным    колесом.Модула-2    (от    англ.
Modula-2) - прямой наследник Паскаля.Автор
1-го  и  2-го  профессор  Никлаус  Вирт из
Швейцарии.В Модуле появились черты которые
заставляют   вспомнить   о  Си,позволяющие
программисту  "заглядывать  внутрь"  маши-
ны.Язык  расчитан  на  организацию  парал-
лельных процессов,что обеспечивает высокое
быстродействие готовой программы.Кобол (от
англ.  COmmon Business Oriented Language -
язык  ориентированный  на  общий бизнес) -
старый язык разработанный для исследований
в экономической сфере.Позволяет эффективно
работать  с большим количеством данных,на-
сыщен  разнообразными  возможностями поис-
ка,сортировки и распределения.О программах
на  Коболе (основанны на широком использо-
вании  английского  языка) говорят,что они
понятны  даже  тем,кто  не  владеет  Кобо-
лом,поскольку тексты программы не нуждают-
ся   в  специальных  комментариях.Подобные
программы  называют  самодокументирующими-
ся.Еще один плюс его структурированность.К
минусам  можно  отнести  то,что  на Коболе
можно  запрограммировать только простейшие
алгебраические  вычисления.Для  инженерных
расчетов  он  не  годится.Еще  одна причи-
на,которая  сдерживает этот язык - наличие
в  США  специально  созданного отраслевого
комитета,вырабатывающего стандарты за соб-
людением  которых  следит правительственая
комиссия. Как это всегда бывает в подобных
случаях фирмы,занимающиеся ПО не торопятся
подгонять свои заготовки к требованиям ко-
миссии.ПЛ/1  (от  англ. PL/1 - Programming
Language  1  -  язык программирования 1) -
результат  первой  попытки создать универ-
сальный язык используя популярные качества
других  языков.Создавался  он фирмой IBM в
начале 60-х и получил черты Фортрана,Алго-
ла и Кобола.Напоминает большой конструктор
с   большим  количеством  деталей,так  что
пользователю  достаточно освоить только те
части  языка  которые ему необходимы.Прог-
раммисту  начинавшему с Бейсика легче изу-
чить   ПЛ/1   нежели  Паскаль.Цель,которую
преследовали разработчики языка определила
его  конструкцию  - большинство операторов
громоздки.В общем - живой динозавр в Вави-
лоне  языков программирования.В полном об-
ьеме  ПЛ/1 так и не был реализован на пер-
сональных компьютерах.Ада (в честь графини
Августы  Ады Лавлейс - дочери лорда Байро-
на,написавшей  вместе с Чарльзом Беббиджем
первую  программу для придуманной аналити-
ческой машины еще в 1830 году) несмотря на
романтичную историю с названием был разра-
ботан   по  заданию  министерства  обороны
США.Предназначался   для  программирования
встроенных  в военную аппаратуру специали-
зированных ЭВМ,поэтому отдано должное осо-
бенностям  технических систем.Также ориен-
тирован  на  создание  больших программных
проектов.Структура  языка  напоминает Пас-
каль  и  позволяет  контролировать  парал-
лельные  вычислительные  процессы.Пока что
министерство  обороны  США  использует Аду
для  всех  программных  разработок.Будушее
Ады  на персональных компьютерах неопреде-
ленно.Форт  (от англ. Forth - вперед и од-
новременно  Fourth - четвертый) - язык для
решения  задач управления.Сегодняшний Форт
практически  не  поддается  классификации:
интерпритатор,компилятор  или операционная
система?Основная  идея Форта - опираясь на
исходный  словарь  определять  новые  сло-
ва.Включать  их  в  библиотеку и через них
определять  новые  слова.Последнее слово и
есть  программа  решающая задачу.Ядро Фор-
та,т.е.   функции,которые  необходимы  для
первичного  диалога  с  машиной очень ком-
пактны,а порождаемые тексты в машинных ко-
дах  весьма  эффективны.Программы на Форте
тяжело  читать "непосвященным",а математи-
ческие  выражения получаются не очень наг-
лядным.Форт  требует от программиста усид-
чивости,но  позволяет написать любую прог-
рамму:  от  видеоигры  до  большой  систе-
мы,причем  работающей  в  реальном  време-
ни.Лисп   (от  англ.  Lisp)  второй  после
Фортрана   язык,если  говорить  о  возрас-
те.Лисп   представитель   языков  функцио-
нального  программирования.Ориентирован на
динамическую  обработку  данных,кстати нет
особых  различий между данными и программи
Лиспа:  числа  и  знаки,программы и данные
считаются  списками,что позволяет програм-
мисту  эффективно  их  перерабатывать,т.о.
программа способна перерабатывать сама се-
бя. Это позволяет использовать Лисп решать
задачи  для которых отсутствует четкий ал-
горитм  решения.Обычно ЯЗЫК создают ориен-
тируясь на конкретную машину.В данном слу-
чае  для новых версий Лиспа появились спе-
циальные Лисп-компьютеры,архитекрута кото-
рых     соответствует    структуре    язы-
ка.Большинство версий Лиспа приобрели чер-
ты других языков и значительно отклоняются
от "чистого" Лиспа.Устройство языка позво-
ляет  доопределять  новые  конструкции,что
напоминает Форт.В основном Лисп применяет-
ся  для  построения  систем искусственного
интеллекта.Пролог   (от   англ.  PROLOG  -
PROgramming in LOGic - логическое програм-
мирование) появился как европейский проти-
вовес  американскому  Лиспу  и относится к
языкам  для создания систем искусственного
интеллекта.Основная  концепция языка - пе-
реводить  логическую  задачу в текст прог-
раммы.Компьютер  должен самостоятельно вы-
водить  результат  из  фактов и правил,при
этом не получая от программиста путь реше-
ния.Программист  определяет лишь объекты и
относящиеся  к  ним логические связи.Как и
Лисп  он  не  различает  данные и програм-
му.Широко  распространен  Турбо Пролог для
персональных   компьютеров,но  в  нем  от-
сутствует   свойство  изменять  исполнемую
программу.Оккам  (ОCCAM - в честь философа
У.Оккама,утверждавшего,что  понятие несво-
димые к интуитивному знанию и не поддающи-
еся проверке опытом,должны быть удалены из
науки:  "Сущности  не следует умножать без
необходимости")  - пример того,как ПО сле-
дует  за техническими новинками,предназна-
чен    для   использования   совместно   с
транспьютером,т.е.  микропроцессором,осно-
ванном  на использовании нескольких парал-
лельно  работающих процессоров.Оккам делит
решение  задачи на параллельно протекающие
процессы.Смолтолк  (от  англ. Small Talk -
короткий   разговор)   умеет   работать  с
абстрактными  объектами,которые  не  имеют
ничего общего ни с техническими свойствами
компьютера,ни  с  классическими  объектами
переработки,т.е. числами или литерными це-
почками.Используется в области искусствен-
ного  интеллекта.Такое  же  название носит
интерактивная  среда программирования,раз-
работанная        научно-исследовательским
центром  Ксерокс,ведущим  работы в области
искусственного   интеллекта.В   концепциях
этих двух языков есть идеи,которые превос-
ходят возможности современных компьютеров.

Текст  набит  по статье "Школа начинающего
программиста"  из  журнала "Наука и жизнь"
номер 9,1989 год.




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

Машинные языки - Языки программирования.

Стандарт экрана - о стандартах экрана мониторов.

Полезные сведения - знаете ли Вы,что...

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

Юмор - слова-переделки из жизни компьютерщиков.

Ария - Сборник лучших песен Самой крутой рок-группы 'АРИЯ' (часть вторая).

Poke's - подборка poke's.


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

Похожие статьи:
Лобзикам - В сентябре 1997 года я заглянул в свой почтовый ящик и увидел письмо от Венгерских Спектрумистов!
Сладкие - треугольный кабинет.
Отдохни - штирлиц.
Обо всём - demo free zone: тенденции спектрумовской демосцены.
Новости - Послe долгой и нaпряжeнной пeрвой чeтвeрти 2006 годa я выпустил-тaки Зй номeр SRS, нa дaнный момeнт это глaвнaя новость от мeня :)

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