Информатика и ИКТ
Школьный интернет-учебник М.А. и М.В. Выграненко

Тема 9: Алгоритмы и исполнители (30 часов)

Урок ? 4(48): Языки программирования и их классификация

Практические, проверочные и домашние работы

pdf Практическая работа 13
"Вычисления в  Basic-256"

"Вычисления в  PascalABC"

pdf Домашняя работа "Линейный алгоритм"

Компьютер - автомат. И, в отличии от человека, работает только по программе, заложенной в него. Для написания таких программ в настоящее время применяются АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ, число которых уже превысило число языков человеческого общения. Но хотя разработаны тысячи языков программирования, лишь сотни из них реализованы хотя бы для одного компьютера, но и среди этих сотен языков активно используются лишь несколько десятков.

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

  1. Группу языков программирования НИЗКОГО УРОВНЯ обычно "открывает" язык МИКРОКОМАНД. На основе простейшего набора микрокоманд пишутся специальные микропрограммы, определяющие, с одной стороны, элементарные операции компьютера, а с другой - управление выполнением программ из элементарных операций. Совокупность таких микропрограмм иногда называют ЭМУЛЯТОРОМ.
    Следующий по уровню язык из этой группы - МАШИННЫЙ. Каждая его команда описывается последовательностью микрокоманд. Синтаксически эти команды не более, чем последовательности нулей и единиц. Машинный язык, как и язык микрокоманд, удобен для интерпретации аппаратурой компьютера, но плохо приспособлен для непосредственного использования человеком-программистом. Программирование в машинных кодах требует от программиста много времени, труда, повышенного внимания.
    Следующим в иерархии языков низкого уровня стоит обычно язык символического кодирования - АВТОКОД или АССЕМБЛЕР. Операторы этого языка - те же команды, но они имеют мнемонические (ассоциативные, буквенные) названия, а в качестве операндов используются не конкретные адреса в оперативной памяти, а их символические имена.
    Следующим естественным усложнением стала замена часто встречающихся последовательностей команд более крупными единицами - макрокомандами. Такие языки называют МАКРОЯЗЫКАМИ.
    Все языки низкого уровня ориентированы на определенный тип компьютера.
  2. Следующую, существенно более многочисленную группу составляют языки программирования ВЫСОКОГО УРОВНЯ. Для всех языков высокого уровня общее то, что ориентированы они не на систему команд того или иного компьютера, а на систему операторов, характерных для записи определённого класса алгоритмов.
    Одним из первых языков высокого уровня был ФОРТРАН (Fortran). Уже само название его - ФОРмульный ТРАНслятор - говорит о том, что основное внимание здесь уделено удобному представлению формул. Уровень языка ФОРТРАН с позиций сегодняшнего дня не слишком высок, но он по-прежнему используется для инженерных и научных расчетов, и его популярность в значительной степени поддерживается физиками, усилиями которых созданы громадные библиотеки фортран-программ. В процессе создания, реализации и использования языка фортран были отработаны многие важные идеи "языкотворчества" в программировании, и можно даже сказать, что этот язык дал уверенность в правильности самой концепции языков высокого уровня.
    Но честь научного обоснования всего направления безусловно принадлежит разработчикам языка АЛГОЛ (Algorithmic Language), первая версия которого появилась в 1958 году. В целом АЛГОЛ - это использование строгого и элегантного математического стиля для реализации сложных алгоритмов и, безусловно, это - целая эпоха в области языков программирования.
    Алгоритмический язык ПАСКАЛЬ (Pascal) разработан в 1970 г. Норбертом Винером и назван в честь английского учёного Б. Паскаля. По своей идее это алголоподобный язык, вобравший в себя все лучшие проектные решения предшественника. Но вместе с тем это качественно новый шаг, связанный прежде всего с тем, что здесь впервые была воплощена концепция абстрактных типов данных.
    Почти одновременно с паскалем, в начале 70-х годов, был разработан и язык программирования СИ (С). Но если паскаль шел больше от теории программирования, то язык СИ - типичный пример влияния практических потребностей системного программирования на разработку новых языков. Изначально он создавался как инструментальное средство для реализации операционной системы UNIX на компьютеры фирмы DEC, но популярность его быстро переросла рамки конкретной машины, и сейчас язык СИ можно по праву назвать одним из универсальных языков программирования. В добавление к средствам языка паскаль в СИ включены средства программирования почти на уровне ассемблера.
    Язык БЕЙСИК (Basic), изучением которого мы с вами будем теперь заниматься, был разработан в 1964 году в США сотрудниками Дармутского колледжа Джоном Кемени и Томасом Курцем. Название языка образовано начальными буквами предложения Beginners All-purpose Simbolic Instruction Code, что в переводе означает - Многоцелевой Символический Код для начинающих. Интересно отметить, что язык под названием Бейсик существовал задолго до появления компьютеров. Он состоял примерно из 300 английских слов и использовался в Африке местными жителями для общения с английскими миссионерами и как язык межплеменного общения. Отношение к БЕЙСИКУ среди профессионалов весьма противоречивое. Одни вообще не считают его заслуживающим внимания (например, в энциклопедическом словаре ИНФОРМАТИКА для начинающих такого слова просто нет). А известный специалист в области информатики Р.Форсайт писал: "БЕЙСИК - это питон, пожирающий все на своем пути. БЕЙСИК только что закончил "переваривать" язык ПАСКАЛЬ со всеми его управляющими структурами. После небольшой паузы и нескольких отрыжек он будет в состоянии "слопать" ПРОЛОГ ..."
    Языки логического программирования ЛИСП (1959 г.), ПРОЛОГ (1973 г.), РЕФАЛ, предназначены для обработки не столько числовой, сколько символьной информации. Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами и цели.
    Прототипом объектно-ориентированного программирования явился язык SIMULA-67. Но оформилось оно в самостоятельный стиль программирования с появлением языка (SMALLTALK-1972 г.), первоначально предназначенного для реализаций функций машинной графики. Этот стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульной структурой программ. Именно модульность упрощает разработку сложных программных продуктов. Современные объектно-ориентированные языки: Visual Basic, Delphi, Visual C#, в основе которых лежат всё те же Basic, Pascal и C.
    Сейчас уже невозможно представить себе жизнь в мире ПК без Интернета. Язык гипертекстовой разметки - HTML (Hyper Text Markur Language) позволяет создавать интернет-сайты.

ТРАНСЛЯТОРЫ.
Все языки построены по определенным законам, в основе которых лежат алфавит и правила образования слов и предложений. Языки программирования строятся по тем же законам, что и человеческие: у них есть свой алфавит, свои слова (их еще называют служебными), свои правила написания. ПРОГРАММЫ, написанные на таких языках, состоят из последовательности предложений, которые называются КОМАНДАМИ или ОПЕРАТОРАМИ. Двоим, говорящим на разных языках, для общения, наверное, понадобится человек, который знает эти оба языка. Он может помочь в разговоре, переводя с одного языка на другой. Если мы "заложим" в компьютер программу, написанную на одном из языков программирования, она не будет выполняться, компьютер ее не поймет. Сам компьютер понимает только один язык - язык машинных кодов (помните? Нули и единицы. Двоичное кодирование.) Чтобы программа была понята, ее надо перевести в машинный код. Для этого используются программы-переводчики, их называют трансляторами (от латинского translatio - "передача"). Трансляторы обычно подразделяют на два типа:

  1. КОМПИЛЯТОРЫ, переводящие целиком всю программу, написанную на языке программирования высокого уровня, на машинный язык, после чего программа записывается в память компьютера и лишь потом реализуется;
  2. ИНТЕРПРЕТАТОРЫ, переводящие команды или операторы входной программы по очереди и немедленно выполняющие их.
Любой транслятор решает четыре основные задачи:
  1. Анализирует транслируемую программу, ищет ошибки, исправляет их сам или выдает сообщения об ошибках;
  2. Если ошибок нет, транслятор генерирует выходную программу (ее часто называют объектной или рабочей) на машинном языке;
  3. Оптимизирует (улучшает) выходную программу, действуя по двум основным направлениям: устранение недостатков программы, вызванных небрежностью или низкой квалификацией программиста, и сокращение излишних вычислений, неизбежно возникающих в процессе трансляции даже при самом тщательном написании программ на языке высокого уровня;
  4. Распределяет машинную память для выходной программы.

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

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

Ведущими разработчиками систем программирования в настоящее время являются фирмы Microsoft и Borland International.

Приложения

И.Г. Семакин и др.  32 [2]

Н.Д. Угринович 4.4 [6]

BASIC-256

Программирование на Basic в Unix

Начало \ Программа 8-9 \ Тема 9 \ Урок 4(48)


При использовании материалов сайта просьба соблюдать приличия
© М.А. и М.В. Выграненко, 2009-2016

Рейтинг@Mail.ru