Добавлен: 06.04.2023
Просмотров: 295
Скачиваний: 2
ВВЕДЕНИЕ
Языки программирования делятся на языки низкого и высокого уровня.
Если язык близок к языку программирования - он называется языком высокого уровня, если ближе к машинным командам, то языком низкого уровня.
К языкам низкого уровня относят машинные языки и языки символического кодирования — Ассемблер, Автокод. Операторы этого языка являются теми же машинными командами, но записанными мнемоническими кодами. В качестве операндов используются символические имена, а не конкретные адреса. Языки низкого уровня являются машинно–зависимыми.
Машинно–ориентированные языки – это языки, которые существенно зависят от особенностей ЭВМ (структуры памяти, внутренней архитекруры и т.д.).
К языкам программирования высокого уровня относят: Фортран (переводчик формул – был разработан в середине 50–х годов программистами фирмы IBM и в основном использовался для программ, выполняющих естественно – научные и математические расчеты); Алгол, Кобол (коммерческий язык – используется, в первую очередь, для программирования экономических задач), Паскаль, Бейсик (был разработан профессорами Дармутского колледжа Джоном Кемени и Томасом Курцом.), Си (Деннис Ритч – 1972 году), Пролог (в основе языка лежит аппарат математической логики) и т. д.
Глава 1: Эволюция языков программирования.
Одной из самых революционных идей, приведших к созданию автоматических цифровых вычислительных машин, была высказана в 20-х годах XIXвека Ч. Бэббиджем - мысль о предварительной записи порядка действий машины для последующей автоматической реализации вычислений - запись программы на перфокартах. С этого момента начинается история программирования.
Аду Лавлейс, одну из немногих современников Чарльза Бэббиджа, кто сумел по достоинству оценить аналитическую машину, называют первым в мире программистом. Она теоретически разработала некоторые приемы управления последовательностью вычислений, которые используются в программировании и по сей день, описала одну из важнейших конструкций практически любого современного языка программирования – цикл.
Революционным моментом в истории языков программирования стало появление системы кодирования машинных команд с помощью специальных символов, предложенной Джоном Моучли, сотрудником Пенсильванского университета.
В конце 40-х годов Джон Моучли создал систему под названием «ShortCode», которая являлась примитивным языком программирования высокого уровня. В ней программист записывал решаемую задачу в виде математических формул, а затем, используя специальную таблицу, переводил символ за символом, преобразовывал эти формулы в двухмерные коды. В дальнейшем специальная программа компьютера превращала эти коды в двоичный машинный код. Система, разработанная Дж. Моучли, была по существу одним из первых примитивных интерпретаторов.
Уже в 1951 г. его последователь Грейс Мюррей Хоппер создала первый в мире компилятор и ею же был введён сам этот термин. Компилятор Хоппер осуществлял функцию объединения команд и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды. «Подпрограммы находятся в библиотеке (компьютера), а когда вы подбираете материал из библиотеки – это называется компиляцией» – так она объясняла происхождение введённого ею термина.
Середина 50-х годов характеризуется стремительным прогрессом в области программирования. Роль программирования в машинных командах стала уменьшаться. Начали появляться языки программирования нового типа, выступающие в роли посредника между машиной и программистами. Первым и одним из наиболее распространенных был Фортран (FORTRAN, отFORmulaTRANslator– переводчик формул), разработанный группой программистов фирмыIBMв 1954 г. (первая версия).
В середине 60-х годов сотрудники математического факультета Дартмутского коллежа Томас Курц и Джон Кемени создали специализированный язык программирования, который состоял из простых слов английского языка. Новый язык назвали «универсальным символическим кодом для начинающих» (BeginnersAllPurposeSymbolicInstructionCode, или сокращенноBASIC). Годом рождения нового языка можно считать 1964 г. Сегодня универсальный язык Бейсик (имеющий множество версий) приобрел большую популярность и получил широкое распространение среди пользователей ЭВМ во всем мире. В значительной мере этому способствовало то, что Бейсик начали использовать как встроенный язык персональных компьютеров, широкое распространение которых началось в конце 70-х годов.
В начале 60-х годов все существующие языки программирования высокого уровня можно было пересчитать по пальцам, однако в последствии их число достигло трех тысяч. Разумеется, подавляющая часть языков не получила сколько – нибудь широкого распространения; в практической деятельности используется не более двух десятков. Разработчики ориентировали языки на разные классы задач, в той или иной мере привязывали их к конкретным архитектурам ЭВМ, реализовали личные вкусы и идеи.
Языки программирования служат разным целям, и их выбор определяет удобность пользователя, пригодностью для данного компьютера и данной задачи. А задачи для компьютера бывают самые разнообразные: вычислительные, экономические, графические, экспертные и т.д. Такая разнотипность решаемых компьютером задач и определяет многообразие языков программирования. По всей видимости, в программировании наилучший результат достигается при индивидуальном подходе, исходящем из класса задачи, уровня и интересов программиста. Например, Бейсик широко употребляется при написании простых программ; Фортран является классическим языком программирования при решении на ЭВМ математических задач; язык Кобол (создан в 1960 г.) был задуман как основной язык для массовой обработки данных в сферах управления и бизнеса. Отметим и еще один достаточно популярный язык – Пролог, разработанный как язык программирования для создания систем искусственного интеллекта.
В конце 50-х годов плодом международного сотрудничества в области программирования явился Алгол (ALGOL, отALGOrithmicLanguage– алгоритмический язык). Алгол предназначен для записи алгоритмов, которые строятся в виде последовательности процедур, применяемых для решения поставленных задач. Специалисты – практики восприняли этот язык далеко неоднозначно, но, тем не менее, его влияние на развитие других языков и теорию программирования оказалось весьма значительным.
В нашей стране в те годы был создан под руководством Сергея Петровича Ершова транслятор Альфа, который представлял довольно удачную русифицированную версию Алгола. Впоследствии академик Ершов сыграл важнейшую роль в становлении в СССР школьной информатики.
Развитие идеи Алгола о структуризации разработки алгоритмов нашло наивысшее отражение при создании в начале 70-х годов языка Паскаль швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах. Однако, качества его в совокупности оказались так высоки, что им охотно пользуются и профессиональные программисты.
Не менее впечатляющей, в том числе и финансовой, удачи добился джазист Филип Кан, француз, разработавший систему Турбо-Паскаль. Суть его идеи состояла в объединении последовательных этапов обработки программы – компиляции, редактирования связей, отладки и диагностики ошибок – в едином интерфейсе. Версии Турбо-Паскаля заполнили практически все образовательные учреждения, программистские центры и частные фирмы.
Период с конца 60-х до начала 80-х годов характеризуется бурным ростом числа различных языков программирования, сопровождавшийся, как это ни парадоксально, кризис программного обеспечения
Большой отпечаток на современное программирование наложил язык Си (первая версия – 1972 г.), являющийся очень популярным в среде разработчиков программного обеспечения (включая операционные системы). Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки как Бейсик Паскаль.
Принципиально иное направление в программировании связанно с методологиями непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование. Объектно-ориентированный язык создают окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования. Из языков объектного программирования, популярны среди профессионалов, следует назвать, прежде всего, Си++, для более широкого круга программистов предпочтительны среди типа Delphi и VisualBasic.
Глава 2: Процедурно-ориентированные языки
1. Язык Фортран
Возникновение программирования берет истоки с 1954 г., когда сотрудник фирмы IBM (никому не известной) Джон Бэкус опубликовал статью о спецификации математической системы формульной трансляции IBM. Сокращение выражения FORmula TRANslation стало названием языка программирования высокого уровня (в то время Ассемблер существовал).
Как и все языки программирования, Fortran имел значимые недостатки в деталях, и в нем не было поддержки нужных концепций структурирования данных и модулей. Тогда Бекус говорил: «Просто по мере осмысления придумывали язык. Мы проектирование языка не расценивали как задачу трудную, а как к реальной проблеме прелюдию: проектированию компилятора, что без труда генерировал бы эффективные и качественные программы». И так, преимущества абстракции сразу обратили на себя внимание большинства программистов, и разработка программ теперь была более быстрой и надежной. Машинная зависимость почти совсем уменьшилась благодаря абстрагированию от машинных команд и регистров. Так как научные задачи рассчитывались на компьютерах самыми первыми, Fortran и стал стандартным языком в технике и науки. Только сейчас ему на смену приходят другие языки. Fortran неоднократно модернизирован (1966,1977,1990) за тем, чтобы адаптировать его к современным требованиям.
Записывается программа на Фортране в последовательности операторов или предложений (преобразование информации), и оформляется в рамках определенных стандартами. Такие стандарты во многом ограничивают, а именно - форму расположения частей и записи оператора в строке бланка для записи операторов. Записанная на Фортране программа представляет собой один или несколько сегментов (подпрограмм) из операторов, а сегмент который управляет работой всей программы в целом, именуется основной программой.
Задуман Фортран для использования в сфере инженерно-технических и научных вычислений, но не смотря на то, на таком языке легко описываются задачи с разветвленной логикой, особенно задачи редактирования (составление таблиц, сводок, ведомостей и т. д.) и некоторые экономические задачи. Появившиеся в 1958 году модификация языка Фортран получила название Фортран II и содержала подпрограммы для обеспечения между сегментами связей и понятие общих переменных. И так, к 1962 году относится появление языка с названием Фортран IV, ставший наиболее популярным в наше время. В то время берет начало деятельность комиссии при Американской Ассоциации Стандартов (ASA), к 1966 г. она проработала два стандарта – базисный (основной) Фортран (Basic FORTRAN) и языки Фортран - эти языки приблизительно соответствуют предыдущим модификациям IV и II, только базисный Фортран является подмножеством Фортрана, в то время, как Фортран II таким для Фортрана IV не будет.
И сейчас Фортран продолжает совершенствоваться, развиваться и оказывает влияние на развитие и создание инных языков. В качестве примера можно взять основу Basic — в неё заложен Фортран. Basic является популярным для решения не очень больших задач, отличный язык для овладения навыками использования алгоритмических языков. Вычислительным центром Дартмутского колледжа в практике программирования, разработан язык – Beginner’s All –purpose Symbolic Instruction Code.
2. Бейсик
В Дартмутском колледже (США) в середине 60-х годов (1963 г.) был
изобретен язык Бейсик (BASIC от Beginner’s Allpurpose Instruction Code). Когда стали появляться иные диалекты, «первичный» диалект начали называть Dartmouth BASIC. Был основан на Фортран II и на Алгол-60, с делающими его удобным добавлениями для работы в режиме разделения времени, а так же обработки матричной арифметики и текста. Изначально был реализован Бейсик на мейнфрейме GE-265 и имел поддержку множества терминалов. Не смотря на распространённые убеждения, изначально являлся компилируемым языком. Был спроектирован Бейсик для того, чтобы писать программы студенты могли, используя терминалы с разделением времени. Создавался Бейсик как решение для проблем со сложностью более старых языков. Предназначение его было для «простых» пользователей, не очень заинтересованных в быстродействии программ, а просто для того, чтобы решать свои задачи с помощью компьютера.