Мегаобучалка Главная | О нас | Обратная связь


Лекция 7. Языки программирования



2019-07-03 388 Обсуждений (0)
Лекция 7. Языки программирования 0.00 из 5.00 0 оценок




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

Язык программирования (ЯП) – формализованный язык для описания алгоритма решения задачи на компьютере. Каждый язык программирования, равно как и «естественный язык» (русский, английский), имеет алфавит, словарный запас, свои грамматику и синтаксис, а также семантику.

Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.

Синтаксис – система правил, определяющих допустимые конструкции языка программирования.

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

Если в качестве признака классификации взять синтаксис образования его конструкций, языки программирования можно разделить на классы:

· машинные языки – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);

· машинно–ориентированные языки – языки программирования, которые отражают структуру конкретного процессора (ассемблеры);

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

Другой классификацией языков программирования является их деление на языки, ориентированные на реализацию основ структурного программирования:

· процедурно–ориентированные языки – языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм);

· объектно–ориентированные языки, поддерживающие понятие объектов и их свойств и методов обработки.

 

Различают также проблемно–ориентированные языки программирования – языки программирования, предназначенные для решения задач определенного класса. Примером такого ЯП является Prolog. Свое название он получил от слов «ПРОграммирование на языке ЛОГики» и разрабатывался для задач анализа и понимания естественных языков на основе языка формальной логики и методов автоматического доказательства теорем.

Языки программирования по своим возможностям и времени создания принято делить на несколько поколений. Каждое из последующих поколений по своей функциональной мощности качественно отличается от предыдущего. К сегодняшнему дню насчитывается пять поколений ЯП.

Первое поколение. В первое поколение входят языки, созданные в 40–50–х годах. В этот период программы писали в машинных кодаx. Трудозатраты при этом были велики. Программирование в машинных кодах в наши дни используется не часто, в основном для новых микропроцессоров, для которых еще не разработаны компиляторы, поддерживающие требуемый набор команд.

Ситуация качественно изменилась в начале 50–х годов, когда был создан язык ассемблер и программа–транслятор с этого языка. Хотя этот ассемблер был неполноценным в сегодняшнем понимании, но он позволял задавать названия команд в символическом виде и указывать числа не только в двоичном, но и в десятичном или шестнадцатиричном формате.

Второе поколение. Появление ЯП второго поколения относится на конец 50–х – начало 60–х годов. Был создан символический ассемблер, позволявший писать программы без привязки к конкретным адресам памяти. В него было введено понятие переменной, и он стал первым настоящим (хотя и машиноориентированным) языком программирова-ния со своим компилятором. Первым и одним из наиболее распространенныx языков программрования высокого уровня стал Фортран (FORTRAN –Formula Translator), разработанный в середине 50–х годов сотрудниками фирмы IBM под руководством Дж. Бекуса. Фортран стал первым языком, в котором было использование понятие «подпрограмма». Самая распространенная версия языка Фортран IV, расширившая его возможности, появилась в 1962 г. Фортран был предназначен для работы с формулами, используемыми в математике и других научно–технических дисциплинах. Этот язык оказал долговременное влияние на исследования в области языков программирования, преследуя цель преодоления недостатков, присущих Фортрану.

Долгие годы Фортран был очень востребованным языком и продолжает оставаться таким в сфере математических расчетов. В 1995 г. международная организация по стандартам (ISO) предложила проект нового стандарта языка – FORTRAN 95. Над созданием средств разработки программ на базе языка Фортрана долгое время работала корпорация Microsoft. В начале 1997 г. Microsoft объявила о прекращении своей деятельности в этой сфрере, заключив соглашение с корпорацией Digital Equipment, по которому последняя лицензировала среду MS Developer Studio для своего нового пакета Visual Fortran (DVF) 5.0 под Windows NT и Windows 95. Компилятор DVF 5.0 поддерживает три основных стандарта языка – FORTRAN 66, FORTRAN 77 и FORTRAN 90. В DVF 5.0 используется интегрированная среда разработки Developer Studio, которая применяется в качестве основы всего семейства средств разработки Microsoft.

Широкое использование Фортрана послужило стимулом к разработке языка ALGOL (ALGOrithmic Language – алгоритмический язык), который создавался как язык программирования для решения научно–технических задач. В 1960 г. появилась расширенная версия языка, которая получила название ALGOL–60. Многие языки, возникшие позднее, впитали в себя лучшие качества Алгола. Одна из наиболее важных – представление о программе не как о свободной последовательности команд, а как о блочной структуре, состоящей из чётко описанных и отделённых друг от друга частей. Кроме этого, в Алголе–60 было предложено два способа передачи параметров в подпрограмму — по имени и по значению, а также четкое разграничение понятий «функция» и «процедура».

У нас в стране Алгол–60 долгое время был языком программирования номер один для решения математических задач благодаря высокоэффективным компиляторам, разработанным под руководством А.П. Ершова и С.С.Лаврова. В 1968 г. появилась версия ALGOL–68, но уже не как новая версия Алгола, а как самостоятельный язык. Стандарт Алгола–68 оказал заметное влияние на синтаксис языка Си.

В 1959 г. состоялась конференция, в задачу которой входило создание единого языка программирования для деловых приложений. Он был назван COBOL (Common Business Oriented Language – универсальный язык, предназначенный для бизнеса). Популярность Кобола возросла в 1962 г. после публикации его новой версии. В переработанных версиях язык стал удобен для сферы бизнеса, машинно–независим, легок для восприятия и применяется до наших дней.

Третье поколение. Третье поколение ЯП принято относить к 60–м годам. В это время родились языки, которые называют универсальными языками высокого уровня. Простота в освоении, независимость от конкретного компьютера и возможность использования мощных синтаксических конструкций позволили резко повысить производительность труда программистов. Кроме того, понятная большинству пользователей процедурная идеология этих языков позволила привлечь к написанию небольших программ (как правило, расчетного или учетного характера) большое количество специалистов из некомпьютерных областей.

В начале 60–x годов IBM, чтобы сохранить первенство на рынке компьютеров, приступила к проектированию системы IMB/360. Машина должна была удовлетворять потребности в равной степени как в аналитических вычислениях, так и в обработке данных в сфере бизнеса и в специальных приложениях. Для компьютера с такими возможностями требовался новый, более совершенный ЯП.

За полгода до окончания работы над аппаратным обеспечением IBM начала заниматься языком. Был создан комитет по разработке передового языка. Комитет приступил к работе в октябре 1963 г., и к февралю 1964 г. спецификации языка были завершены. Этот язык был назван PL/1 (от programming language one), работа над компилятором была поручена лаборатории фирмы IBM в Англии. Многие черты Фортрана, Кобола и Алгола нашли отражение в PL/1. Специалисты отмечали, что язык наделен слишком многими качествами и потому сложен даже для профессиональных программистов. В сущности, PL/1 относится к числу забытых ЯП.

Многие из языков третьего поколения благодаря простоте в освоении успешно применяются и сегодня. Один из таких языков программирования – PASCAL, создателем которого является Никлаус Вирт. Он начал создавать новый язык в 1968 г. и назвал его в честь французского философа и математика XVII века Б. Паскаля. В 1973 г. PASCAL был объявлен официальным языком программирования для учащихся средних школ, которые намерены специализироваться в области вычислительной техники и программирования в университетах. Паскаль – это один из языков, основанный на принципах структурного программирования.

Практически одновременно с Паскалем был разработан еще один широко распространенный язык высокого уровня – Си ( 1972 г., Д. Ричи). Этот язык был использован для написания ОС UNIX. До этого традиционно ОС разрабатывались на языке ассемблера. Си открыл возможность программистам работать непосредственно с «железом» компьютера. На Си было написано более 90% всего кода ОС UNIX и только примерно около 1000 строк – на ассемблере.

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

Первый объектно–ориентированный язык программирования Simula 67 был разработан в конце 60–х годов в Норвегии и предназначался для моделирования сложных систем. Этот язык намного опередил свое время. Как отмечают специалисты, единственным существенным отличием Simula 67 от современных объектно–ориентированных языков являются отсутствие интерфейсов и невозможность для объекта иметь более одного конструктора. Программисты 60–х годов неоценили значимость Simula 67 только потому, что он был реализован как интерпретируемый, а не компилируемый язык. Скорость выполнения программ для машин того времени была существенным фактором. Достоинства Simula 67 были востребованы в 70–е годы, и на его основе разработаны уже современные объектно–ориентированные языки программирования: C++, Smalltalk, Eiffel и др.

Четвертое поколение. Период с начала 70–х и вплоть до конца 90–х годов – это период языков четвертого поколения. Процесс создания больших программных комплексов оказался очень трудоемкой задачей, так как для реализации крупных проектов требовался более глобальный подход к решаемым задачам, чем предлагали имевшиеся средства разработки. Языки четвертого поколения частично снимали эту проблему. Целью их создания было стремление к увеличению скорости разработки проектов, снижение числа ошибок и повышение общей надежности работы больших программных комплексов, упрощение самих языков для конечного пользователя, активное внедрение технологий визуальной разработки. В 1975 г. для обучения студентов программированию Курцом и Кемени был предложен язык, который в сравнении с Фортраном отличался большей простотой. Он получил имя BASIC (Beginners All Purpose Symbolic Code – универсальный символический код для начинающих). В настоящее время все чаще пишут Basic вместо BASIC, придавая уже другую трактовку названию: Basic – основной, базовый). Язык был ориентирован на интерактивное взаимодействие программиста с компьютером. Впоследствии Бейсик стал поистине массовым языком программирования. В значительной степени этому способствовало то, что Бейсик практически повсеместно стали использовать как встроенный язык микрокомпьютеров.

Visual Basic – один из наиболее популярных программных продуктов Microsoft. Это простой язык, который недавно подошел к такому уровню развития, при котором его можно использовать даже для построения больших систем высокой производительности. Basic прост и привлекателен. Но ему не достает формальной структуры, которая делает язык, подобно C и C++, более подходящим для больших проектов.

В 70–х годах язык Паскаль пользовался большим успехом. Однако он почти не имел мощной поддержки операций ввода–вывода и других средств, существенных для практического применения. Поэтому разработчики программного обеспечения внесли в язык значительные изменения. В компиляторах Паскаля появлялись новые расширения, выводящие язык за пределы чисто учебных приложений, что и породило множество диалектов этого языка. Однако Н.Вирт стремился к универсальности и в 1981 г. разработал язык Модула–2, который должен был заменить Паскаль в универсальных приложениях.

В начале 80–х годов появился компактный, дешевый и мгновенно срабатывающий компилятор Турбо–Pascal. Его разработчиком был бывший студент Вирта Филип Кан. Совершенствуя Turbo–Pascal, фирма Borland разрабатывала все и новые и новые версии пакета. Начиная с версии 7.0, язык стал называться Borland Pascal. Со временем в Turbo-Pascal появились дополнительные средства, обеспечивающие поддержку концепции объектно–ориентированного программирования, и язык программирования Turbo Pascal стал именоваться Object Pascal. На базе Object Pascal фирмой Borland была создана принципиально новая среда программирования, которая получила название Delphi, а на ее основе и Borland C++ Builder.

В конце 70–х годов в военном ведомстве США был разработан еще один очень распространенный в настоящее время язык – Ада. Он назван в честь Огасты Ады Байрон (сестры Дж. Байрона), которая была программистом механического калькулятора Ч. Бэббиджа. Структура Ады очень похожа на Паскаль. Синтаксис большинства операторов и описаний практически идентичен синтаксису Модулы, хотя Модула появилась практически в одно время с Адой. C 1983 г. в военном ведомстве США все новые программы для «критических» приложений (mission–critical applications) разрабатываются на Аде. Их общая черта – неприемлемо высокая цена сбоя или отказа оборудования.

В начале 80–х годов появилась, разработанная Б. Строуструпом новая версия языка Си – Си++. В Си++ было внесено множество усовершенствований, в числе первых – это средства поддержки абстракций данных и средства объектно–ориентированного программирования (ООП). Ориентация языка на системное программирование сохранилась. До последнего времени это самый востребованный и одновременно самый сложный из всех языков программирования. C 1985 г. в язык были введены новые возможности: множественное и виртуальное наследование, шаблоны функций и классов, обработка исключительных ситуаций. Кардинально изменена семантика совместного использования оператора new, изменен синтаксис для вложенных классов. Стандарт языка принят в 1998 г.

С 1996 года стал широко распространяться новый объектно–ориентированный язык программирования Java, а за ним и С#. Синтаксис Java похож на синтаксис языка C++, однако эти языки имеют мало общего. Java – интерпретируемый язык: для него определены внутреннее представление (bytecode) и интерпретатор этого представления, которые уже сейчас реализованы на большинстве платформ. Интерпретатор упрощает отладку программ, написанных на языке Java, обеспечивает их переносимость на новые платформы и адаптируемость к новым окружениям. Он позволяет исключить влияние программ, написанных на языке Java, на другие программы и файлы, имеющиеся на новой платформе, и тем самым обеспечить безопасность при выполнении этих программ. Эти свойства языка Java позволяют использовать его как основной язык программирования для программ, распространяемых по сетям (в частности, по сети Internet).

Язык C# продолжает цепь прогрессивного развития технологий Microsoft на базе языков программирования Си, Си++, Java. Этот язык главным образом ориентирован на внутреннюю архитектуру Windows. C# используется для работы в среде Microsoft Visual Studio.NET и аккумулирует самые смелые идеи создания .NET–приложений.

Пользователям, использующим языки 4–го поколения для создания законченных приложений, по–прежнему необходимо кодировать программу вручную, используя обычный процесс последовательного ввода команд. При этом сохраняется главный недостаток языков предыдущих поколений. Он заключается в том, что все они в значительной степени ориентированы на компьютерную идеологию (работа с памятью, переменными, последовательностями абстрактных операторов и т. п.), что требует от людей хорошего понимания принципов функционирования компьютера и операционных систем.

Интересным является исследование сравнительной сложности языков программирования (Свердлов С. Арифметика синтаксиса. – PC Week/RE #42–43, 1998). В качестве меры сложности языка программирования использованы количественные характеристики формализованного описания его синтаксиса. Одним из неожиданных результатов измерений стало то, что Си оказался не простым, а очень простым языком. Неслучайно поэтому он завоевал в свое время такую популярность. Ничего хорошего в смысле простоты нельзя сказать про Си++ и Java. Java, как оказывается, даже более сложный язык, чем Си++. Сложность Object Pascal сопоставима с Java.

Пятое поколение. Рождение языков пятого поколения можно отнести к началу нового тысячелетия. Специалисты рассматривают средства разработки 5–го поколения в более широком аспекте, чем это принято делать в отношении обычных языков программирования. Они считают, что к системам 5–го поколения можно отнести не только новые мощные языки, но и системы создания программ, ориентированные не на программиста. Подобные системы отличаются стремлением предоставить конечному пользователю,неспециалисту, богатые возможности создания прикладных программ с помощью визуальных средств разработки без знания программирования. Главная идея, которая закладывается в эти системы, – возможность компьютерного интерактивного или полностью автоматического преобразования инструкций, вводимых в систему наиболее удобными человеку методами в максимально наглядном виде. Примером такой системы является программная среда LabVIEW.

LabVIEW – программный пакет, предназначенный для использования специалистами в области компьютеризированных систем сбора, контроля и обработки сигналов, в том числе в режиме реального времени, обладающий уникальным математическим аппаратом и широкими возможностями по представлению данных. Основная особенность пакета – сочетание понятного графического интерфейса с мощными внутренними возможностями программирования и обработки данных. В LabVIEW для написания текстов программ использует язык графического программирования G. Владея обширными библиотеками приема, обработки, анализа и представления данных, LabVIEW можно использовать как универсальное программное средство разработки прикладного программного обеспечения для систем автоматизации научных исследований, контроля и управления технологическими процессами.

От пользователей LabVIEW не требуется знания языков программирования (достаточно минимального владения языком С). Все действия разработчика программы сводятся к простому построению структурной схемы приложения в интерактивной графической системе с набором всех необходимых библиотечных образов, из которых графически собираются программы, называемые виртуальными приборами (VI). Процесс освоения пакета существенно облегчается ввиду наличия интерактивной обучающей системы и разветвленной контекстно–зависимой помощи, а также многочисленных прилагаемых примеров использования приемов программирования. При этом все примеры являются не иллюстративными, а рабочими и готовыми к применению программами.

Лицевая панель прибора «Спектральный анализ сложного гармонического сигнала» приведена на рис. 5.1, блок–диаграммы прибора – на рис 5.2.

Рис. 5.1. Лицевая панель прибора «Спектральный анализ сложного гармонического сигнала»

На лицевой панели располагаются элементы управления программой (кнопки, выключатели), а также элементы, предназначенные для отображения данных (индикаторы). Блок–диаграмма – это и есть сама программа. При создании программы используется такое понятие, как поток данных. Суть его в том, что все элементы программы (которые представлены графически) связываются между собой связями (проводами, нитями), по которым и происходит передача данных от блока к блоку.

Таким образом, некоторые компьютерные эксперты считают продукты последнего поколения уже не языками, а средствами разработки, прикладными пакетами, не имеющими к традиционному процессу создания программ с помощью ЯП никакого отношения.

Рис. 5.2. Блок–диаграмма прибора «Спектральный анализ сложного гармонического сигнала»

 

Проектирование программы происходит в специализированном визуальном редакторе, и работа с исходными текстами отсутствует. Практика показывает, что применение подобных систем эффективно.

Для инженера, привыкшего мыслить структурными схемами систем, рассматривать ее отдельные компоненты в качестве «черных ящиков» с известными входами и выходами, направлениями передачи сигналов, такая программа интуитивно ясна. Затраты времени на разработку по сравнению с традиционным программированием просто несоизмеримы. Именно здесь заключается слабая сторона такого подхода.

Реально имеются две негативные стороны использования стандартных библиотек функций (классов):

закрытость исходных кодов (и в смысле недоступности, и в том смысле, что пользователь не заинтересован разбираться в чужих кодах);

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

 

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



2019-07-03 388 Обсуждений (0)
Лекция 7. Языки программирования 0.00 из 5.00 0 оценок









Обсуждение в статье: Лекция 7. Языки программирования

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (388)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.015 сек.)