Similar presentations:
Языки и системы программирования
1. Информатика и информационно-коммуникационные технологии
Информатика иинформационнокоммуникационные
технологии
Сафарьян Ольга
Александровна
2. Лекция 5 ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
1.2.
3.
4.
5.
6.
7.
8.
Уровни языков программирования
Системы программирования
Классификация языков программирования
Процедурные языки программирования
Объектно-ориентированные языки
Декларативные языки
Языки программирования для баз данных и
компьютерных сетей
Языки моделирования
3. Уровни языков программирования
Языки программирования, ориентированные накоманды процессора и учитывающие его
особенности, называют языками низкого уровня.
«Низкий уровень» не означает плохой или
неразвитый, имеется в виду, что операторы этого
языка близки к уровню аппаратного обеспечения,
машинный код ориентирован на команды
конкретного типа процессора. Машинный код
использовался в качестве языка программирования
в машинах первого поколения.
Языком самого низкого уровня является ассемблер.
Программа на нём представляет
последовательность команд машинных кодов, но
записанных с помощью символьных мнемоник.
4. Уровни языков программирования
Языкипрограммирования,
имитирующие
естественные,
обладающие укрупненными командами, ориентированные «на
человека», называют языками высокого уровня.
С помощью языка программирования создается не готовая к
исполнению программа, а только её текст (его называют исходным
кодом - source code), описывающий разработанный алгоритм.
Исходные тексты программ легко переносимы на другие
платформы, для которых разработаны трансляторы этого языка.
Трансляторы (программы-переводчики исходного кода в машинный)
бывают двух основных типов: компиляторы и интерпретаторы.
Компилятор полностью обрабатывает весь текст программы:
осуществляет
поиск
синтаксических
ошибок,
выполняет
семантический анализ и только затем, если текст программы в
точности соответствует правилам языка, его автоматически
переводят на машинный язык в готовый к исполнению код (ЕХЕфайл), который может работать под управлением операционной
системы.
5.
Интерпретатор берет очередной оператор языка из текста программы,анализирует его структуру и затем сразу исполняет. После успешного выполнения
текущей команды интерпретатор переходит к анализу и исполнению следующей.
Если один и тот же оператор в программе выполняется несколько раз,
интерпретатор всякий раз воспринимает его так, будто встретил впервые. Поэтому
программы, в которых требуется произвести большой объем повторяющихся
вычислений, будут работать медленно. Кроме того, для выполнения программы
на другом компьютере также должен быть установлен интерпретатор, так как без
него программа работать не будет.
Основной недостаток компиляторов — трудоемкость трансляции языков
программирования, ориентированных на обработку данных сложной структуры,
заранее неизвестной или динамически меняющейся во время работы программы.
С помощью интерпретатора, наоборот, для исследования содержимого памяти
допустимо в любой момент прервать работу программы, организовать диалог с
пользователем, выполнить любые сложные преобразования данных и при этом
постоянно контролировать программно-аппаратную среду, что и обеспечивает
высокую надежность работы программы. Интерпретатор при выполнении каждой
команды подвергает проверке и анализу необходимые ресурсы операционной
системы, при возникающих проблемах выдает сообщения об ошибках.
6. Системы программирования
Системы программирования представляют собой комплексы инструментальныхпрограммных средств, позволяющих реализовать все процессы создания
исполняемой программы, а именно:
• Составление исходного кода программы на языке программирования.
Специализированный
текстовый
редактор
позволяет
обнаруживать
синтаксические ошибки непосредственно при вводе программы, давать советы по
их устранению, наглядно отображать структуру программы, выделять цветом
операторы, комментарии и др.
• Трансляция с помощью компилятора исходного кода программы в объектный код
(говорят: генерируется объектный код или object code). Нередко при этом
выполняется оптимизация с помощью набора методов, позволяющих повысить
быстродействие программы.
• Создание исполняемого кода. Сгенерированный объектный код обрабатывается
специальной программой — сборщиком (компоновщиком) или редактором связей,
который производит связывание модулей объектного кода и стандартных функций
из библиотек (например, файлов *.LIB, *.DLL) в машинный код для конкретной
платформы (загрузочного модуля, готового к исполнению, например, файла
*.ЕХЕ).
7. Системы программирования
Кроме текстового редактора, компилятора, библиотек функций и редакторасвязей в состав системы программирования входят справочная система и
отладчик, позволяющий анализировать выполнение программы в
пошаговом режиме и наблюдать изменение значений контролируемых
переменных.
В системах визуального программирования все необходимые графические
элементы оформления и управления создаются путём перетаскивания и
редактирования готовых визуальных компонентов. Соответствующий этим
элементам вспомогательный исходный код формируется в RAD-средах
(Rapid Application Development - средах быстрого проектирования)
автоматически, что позволяет сосредоточиться только на логике решаемой
задачи.
8. Классификация языков программирования
Языки программирования можно разделить на пять поколений.Первые языки появились в начале 50-х годов, с появлением компьютеров.
Это был первый ассемблер, созданный по принципу «одна инструкция – одна
строка»
Второе поколение – конец 50-х годов – символический ассемблер
(макроассемблер), в котором появилось понятие переменной. Первый
полноценный, но ещё низкоуровневый язык программирования
Третье поколение – с 60-х годов – универсальные языки высокого уровня. С
их помощью решаются задачи из любых областей. Небольшие программы
инженерного и экономического характера создаются специалистами из
некомпьютерных областей
Четвёртое поколение – с 70-х годов – языки для реализации крупных
проектов, ориентированные на узкоспециализированные области применения. В
таких проблемно-ориентированных языках одним мощным оператором можно
описать такую функциональность, для реализации которой на языках
предыдущих поколений потребовалось бы тысячи строк исходного кода.
Пятое поколение – с середины 90-х годов – системы автоматического
создания программ с помощью визуальных средств, практически без знания
программирования.
9.
Классификация языков по принципам программирования может бытьиллюстрирована схемой, представленной на рисунке 1.
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Процедурные
(императивные)
Операционные
Структурные
Объектноориентированные
Объектные
Визуальные
Декларативные
Функциональные
Логические
10.
Процедурные языки программированияПроцедурное или императивное (от лат. imperativus — повелительный)
программирование есть отражение фон Неймановской архитектуры компьютера.
Программа, написанная на этом языке, представляет собой последовательность
команд (операций), определяющих алгоритм решения задачи. Основной операцией
является команда присвоения, предназначенная для определения и
изменения содержимого памяти компьютера. Фундаментальная идея процедурного
программирования — использование памяти компьютера для хранения данных.
Функционирование программы сводится к последовательному выполнению
команд с целью преобразования исходного состояния памяти, т.е. программа
производит пошаговое преобразование содержимого памяти, изменяя его от
Исходного состояния к результирующему. Коротко опишем наиболее известные из
процедурных языков.
11.
Фортран (FORTRAN – FORmula TRANslation – транслятор формул) – один из первыхкомпилируемых процедурных языков программирования высокого уровня, создан в
начале 50-х гг. в США сотрудником фирмы IBM Джимом Бэкусом. Основное
назначение языка – программирование научно-технических задач. Долгие годы он
был одним из самых распространенных языков в мире. За это время накоплена
огромная библиотека программ, написанных на Фортране. К 2000 г. появилась
версия Фортрана F2k, для параллельных суперкомпьютеров со множеством
имеется версия HPF (High Performance Fortran – высокоэффективный Фортран).
Многие средства Фортрана использованы в других языках, например PL-1
и Бейсик.
Кобол (COBOL – COmmon
Business Oriented Language – общепринятый деловой
;
язык) – язык программирования, ориентированный на решение задач обработки
больших объемов данных, хранящихся на различных внешних носителях.
Широко используется для решения учетно-экономических и управленческих задач.
Разработан в США в 1958—1960 гг. Программа на Коболе имеет вид ряда
предложений на английском языке и напоминает обычный текст.
Алгол (ALGOL – ALGOrithmic Language – алгоритмический язык) разработан
международной группой зарубежных специалистов в 1960 г. В результате
дальнейшего развития и усовершенствования в 1968 г. была создана версия
Алгол-68. Алгол предназначался для замены Фортрана. Но не получил широкого
распространения, так как из-за сложной структуры и отсутствия эффективных
компьютеров для него не удалось своевременно создать хороших компиляторов
12.
ПЛ/1 (PL/1 – Programming Language One – первый язык программирования)разработан фирмой IBM в 1963—1966 гг. как первый многоцелевой
универсальный язык, не привязанный к конкретной архитектуре ЭВМ.
При разработке PL/1 были широко использованы лучшие понятия и средства
языков Фортран, Алгол-60, Кобол. Компания IBM и сегодня продолжает
поддерживать этот язык, который по своим возможностям мощнее многих
других языков.
Бейсик (BASIC – Beginners All-purpose Symbolic Instruction Code – универсальный
символический код для начинающих) создан в середине 60-х гг. сотрудниками
математического факультета Дартмутского колледжа Томасом Курцем и Джоном
Кемени как учебный язык программирования, состоящий из простых английских
слов. Популярность Бейсика объясняется как простотой его освоения, так и
наличием достаточно мощных универсальных средств, пригодных для решения
научных, технических, экономических и других задач.
;
13.
Паскаль (Pascal) был назван в честь французского математика и философаБлеза Паскаля (1623–1662). Созданный как учебный язык программирования в
1968–1971 гг. Никлаусом Виртом в Высшей технической школе (ЕТН) в Цюрихе
(Швейцария), он стал одним из наиболее популярных процедурных языков
программирования, особенно для персональных компьютеров. В основу
разработки языка Паскаль был положен Алгол-60, но ужесточен ряд требований
к структуре программы и добавлены возможности, позволяющие успешно
применять его для создания крупных проектов.
Ада (Ada) – язык программирования, названный в честь Ады Лавлейс,
дочери поэта Байрона, которая была увлечена идеями Чарльза Бэббиджа и
разработала первую в мире программу для вычислительной машины. Период с
;
конца 60-х до начала
80-х гг. характеризуется бурным ростом числа различных
языков программирования. Однако среди бесчисленного множества языков ни
один не мог удовлетворить требованиям военного ведомства США. В мае 1979
г. группа ученых во главе с Жаном Ихбиа победила в конкурсе на создание
языка для Пентагона. Язык Ада – прямой наследник Паскаля. Он предназначен
для создания и длительного сопровождения больших программных систем,
управления процессами в реальном масштабе времени. Важным его
достоинством является возможность параллельного программирования ветвей
программы, которые затем могут реализоваться на многопроцессорных
компьютерах.
14.
Си (С) был разработан в лаборатории Bell для реализации операционной системыUNIX в начале 70-х гг. и не рассматривался как массовый. Он планировался для
замены Ассемблера, чтобы иметь возможность создавать столь же эффективные и
компактные программы, и в то же время не зависеть от конкретного типа
процессора.
По набору управляющих конструкций и структур данных Си имеет возможности,
присущие высокоуровневым языкам, и вместе с тем он располагает средствами
прямого обращения к памяти. Язык Си популярен и широко используется
профессиональными программистами.
;
15.
Объектно-ориентированные языкиК
объектно-ориентированным
системам
визуального
проектирования относятся Visual Basic, Delphi, C++ Builder,
Visual C++. VBA (Visual Basic for Application – Visual Basic для
приложений) является общей языковой платформой для
приложений Microsoft Office (Excel, Word, Power Point и др.).
VBA
соблюдает
основной
синтаксис
и
правила
программирования языков Бейсик-диалектов. VBA помогает
довольно сильно расширить возможности приложений за счет
написания макросов — программ, предназначенных для
автоматизации выполнения многих операций. Программы на
языке VBA для приложений создаются двумя способами: в
автоматическом режиме как результат записи клавишной
макрокоманды и путем написания программного кода.
16.
Декларативные языкиСуть
функционального (аппликативного) программирования определена
Андреем Петровичем Ершовым как «способ составления программ, в которых
единственным действием является вызов функции, единственным способом
расчленения программы на части является введение имени функции, а
единственным правилом композиции – оператор суперпозиции функций. Никаких
ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем,
ни передачи управления». Ключевым понятием в функциональных языках
является выражение. Программа, написанная на функциональном языке,
представляет собой последовательность описаний функций и выражений,
которые необходимо
; вычислить.
Логическое или реляционное программирование началось с создания в 1973 г.
французским ученым Аланом Кольмероэ языка искусственного интеллекта
Пролог (PROLOG – PROgramming in LOGic – программирование в терминах
логики) Концепция логического программирования базируется на понятии
отношения.
17.
Декларативные языкиЛогическая программа — это совокупность аксиом и правил, определяющих
отношения между объектами и целью. Выполнение программы представляет собой
попытку доказательства логического утверждения, построенного из программы по
правилам, определенным семантикой используемого языка. Результатом вычислений
по методу резолюций является вывод следствий из аксиом. Логические программы не
отличаются высоким быстродействием, так как процесс их выполнения сводится к
построению прямых и обратных цепочек рассуждений разнообразными методами
поиска
;
18.
Языки программирования длябаз данных и компьютерных
сетей
Появление и активное развитие компьютерных сетей стало причиной создания
многочисленных версий популярных языков программирования, адаптированных для
использования в сети. Отличительные особенности, присущие сетевым языкам: они
являются интерпретируемыми, интерпретаторы для них распространяются бесплатно, а
сами программы – в исходных текстах. Такие языки получили название скрипт-языков
HTML (Hyper Text Markup
Language – язык разметки гипертекста) представляет собой
;
набор команд форматирования текста, добавления графических объектов (рисунков),
задания шрифтов и цвета, таблиц и организации гипертекстовых ссылок. В
соответствии с командами HTML браузер отображает содержимое документа,
команды языка не отображаются. Практически все Web-страницы написаны на HTML
или используют его расширения.
В 80-х гг. Ларри Уолл разработал язык Perl (Practical Extraction and Report Language
– практический язык для составления отчётов), который предназначался для
эффективной обработки больших текстовых файлов, создания текстовых отчетов и
управления задачами. В его состав входят многочисленные функции работы со строками,
массивами, всевозможные средства преобразования данных, управления процессами,
работы с системной информацией и др.
19.
Tcl/Tk. В конце 80-х гг. Джон Аустираут придумал скрипт-язык Tcl (Tool CommandLanguage – командный язык инструментов) и библиотеку Tk (Tool Kit – набор
инструментов). Tcl – это попытка создания идеального скрипт-языка. Он ориентирован
на автоматизацию рутинных операций и состоит из мощных команд, выполняющих
обработку нетипизированных объектов. Позволяет создавать программы с графическим
интерфейсом.
Язык VRML (Virtual Reality Modeling Language – язык моделирования виртуальной
реальности) был создан в 1994 г. для организации виртуальных трехмерных интерфейсов в
Интернете. Он описывает разнообразные трехмерные образы и цвето-теневое освещение
в текстовом виде, что ;позволяет создавать различные сценарии миров, путешествовать по
ним, «облетать» объекты с разных сторон, вращать их в любых направлениях,
масштабировать, изменять освещенность и т.д.
20.
Языки моделированияПри моделировании систем применяются формальные способы их описания –
формальные нотации, с помощью которых можно представить объекты и взаимосвязи
между ними в системе. Такие системы называют CASE-системами (Computer-Aided
Software Engineering – автоматизированная разработка программ). В них активно
применяются нотации IDEF (Icam DEFinition – ICAM определения, где ICAM –
Integrated Computer-Aided Manufacturing – комплексная автоматизированная система
управления производством), используется язык графического моделирования UML
(Unified Modeling Language – унифицированный язык моделирования).
;
21.
Функции обработки строкСледует также пояснить, что функция InStr возвращает
позицию первого вхождения (если совпадение найдено).
Если строка2 – пустая, то возвращается стартовая позиция.
Возвращаемое значение будет равно нулю в следующих
случаях: строка1 – пустая; строка2 не найдена; стартовая
позиция превышает длину строки1.
;
22.
Функции преобразования данныхСреди встроенных функций VBA следует выделить такие, которые работают с
различными типами данных и выполняют соответствующие преобразования
строковых и числовых значений. В таблице представлен синтаксис таких функций,
их описание и примеры использования.
;
23.
Функции преобразования данных;