Micro
#12
12 января 1999 |
|
Машинные языки - Языки программирования.
╔══════════════════════════════════════╗ ║ Языки программирования. ║▒ ╚══════════════════════════════════════╝▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ Несмотря на то,что языков программирова- ния сегодня более 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 год.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября