lec_3_sem_2_inf.ppt
- Количество слайдов: 16
Программирование Языки программирования
Программа — это логически упорядоченная последовательность команд, необходимых для управления компьютером (выполнения им конкретных операций), поэтому программирование сводится к созданию последовательности команд, необходимой для решения определенной задачи. Программа представляет собой формализованное описание последовательности действий определенных устройств ЭВМ в зависимости от конкретного характера задачи. Процессор компьютера — это большая интегральная микросхема. Реально программа, с которой работает процессор, представляет собой последовательность чисел, называемую машинным кодом. Алгоритм — это точно определенное описание способа решения задачи в виде конечной (по времени) последовательности действий. Такое описание еще называется формальным. Для представления алгоритма в виде, понятном компьютеру, служат языки программирования.
Текст программы — полное, законченное и детальное описание алгоритма на языке программирования. Языки программирования — искусственные языки. От естественных они отличаются ограниченным числом «слов» , значение которых понятно транслятору, и очень строгими правилами записи команд (операторов). Язык программирования — формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя (например, компьютера). Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Со времени создания первых программируемых машин человечество придумало уже более двух с половиной тысяч языков программирования.
Создатели языков по-разному толкуют понятие язык программирования. Среди общих мест, признаваемых большинством разработчиков, находятся следующие: Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами. Задача: язык программирования отличается от естественных языков, тем, что предназначен для передачи команд и данных от человека компьютеру, в то время, как естественные языки используются лишь для общения людей между собой. Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.
Языки программирования, или алгоритмические языки, классифицируются: по степени их зависимости от вычислительной машины; по ориентации на сферу применения; по специфике организационной структуры языковых конструкций и т. д. и т. п. Каждый язык программирования может быть представлен в виде набора формальных спецификаций, определяющих его синтаксис и семантику. Ограниченное число «слов» , значение которые понятны транслятору, и очень строгие правила записи команд (операторов), образуют синтаксис языка программирования, а смысл каждой команды и других конструкций языка — его семантику. Строго говоря, синтаксис и семантика языка включают в себя: Ш типы и структуру данных; Ш операционную семантику (алгоритм вычисления конструкций языка); Ш семантические конструкции языка; Ш библиотеки примитивов (например, инструкции ввода-вывода); Ш философии, назначения и возможностей языка.
Нарушение формы записи программы приводит к тому, что транслятор выдает сообщение о синтаксической ошибке. Правильно написанное, но не отвечающее алгоритму использование команд языка приводит к семантическим ошибкам Классификация современных языков программирования
Языки программирования Операторные Функциональные Пролог Процедурные Непроцедурные Снобол Лисп Smalltalk Машинно-зависимые (низкого уровня) Машиннонезависимые (высокого уровня) QBE Fort Машинные Автокоды ЯСК Ассемблер Машинноориентированн ые Си Процедурноориентированные (универсальные) Бейсик Паскаль Фортран Кобол ПЛ/1 Проблемноориентированные Сверхуниверсальные Ада Объектноориентированные РПГ Ада 93 (95) GPSS Java АПЛ Delphi Лисп Visual Basic Си++
Процесс поиска ошибок в программе называется тестированием, процесс устранения ошибок — отладка. С помощью языка программирования создается не готовая программа, а только ее текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо этот текст либо автоматически перевести в машинный код (для этого служат программыкомпиляторы) и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы-интерпретаторы). Интерпретатор берет очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет. Только после того как текущий оператор успешно выполнен, интерпретатор перейдет к следующему. Компиляторы полностью обрабатывают весь текст программы в поисках синтаксических ошибок, выполняют определенный смысловой анализ и затем автоматически переводят (транслируют) на машинный язык — генерируют машинный код. В результате законченная программа получается компактной и эффективной, работает в сотни раз быстрее программы, выполняемой с помощью интерпретатора, и может быть перенесена на другие компьютеры с процессором, поддерживающим соответствующий машинный код.
Недостаток компиляторов — трудоемкость трансляции Интерпретатор очень удобен для использования в качестве инструмента изучения программирования, так как позволяет понять принципы работы любого отдельного оператора языка. В реальных системах программирования перемешаны технологии и компиляции, и интерпретации. Уровни языков программирования Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. Операторы языка близки к машинному коду и ориентированы на конкретные команды процессора, такие языки программирования называются машинно-зависимыми. К данному виду языков относятся: автокоды, языки символического кодирования и ассемблеры. Однозначное преобразование одной машинной инструкции в одну команду ассемблера называется транслитерацией.
Наборы инструкций для каждого модели процессора отличаются, конкретной компьютерной архитектуре соответствует свой язык ассемблера, Языки программирования высокого уровня значительно ближе и понятнее человеку, нежели компьютеру. Языки программирования принято делить на пять поколений. 1 -поколение - языки, созданные в начале 50 -х годов. Первый язык ассемблера, язык «один в один» . 2 -поколение - конец 50 -х — начало 60 -х годов, появилось понятие переменной. Первый полноценный язык программирования макроассемблер – символический ассемблер 3 -поколение – середина 60 -х годов. Универсальные языки высокого уровня, с их помощью удается решать задачи из любых областей. Успешно применяются и сегодня 4 -поколение - начало 70 -х годов. Языки предназначены для реализации крупных проектов. Обычно ориентированы на специализированные области применения. Проблемно-ориентированные языки, оперирующие конкретными понятиями узкой предметной области.
5 -поколение – появился в середине 90 -х годов. Системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Инструкции же вводятся в компьютер в максимально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием. Fortran (Фортран). Это первый компилируемый язык, созданный Джимом Бэкусом в 50 -е годы. Продолжает активно использоваться появился очередной стандарт Фортрана F 2 k. Cobol (Кобол). Язык для применения в экономической области и решения бизнес - задач, разработанный в начале 60 -х годов. В настоящее время почти не используется. PL/1. В 1964 году создала корпорация IBM. Был призван заменить Cobol и Fortran. Так и не стал популярен вне мира IBM. Algol (Алгол). Был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения.
Basic (Бейсик). BASIC (Beginners’ All-Purpose Symbolic Instruction Code — многоцелевой язык символических инструкций для начинающих). Язык задумывался в первую очередь как средство обучения и как первый изучаемый язык программирования. Создано несколько мощных реализаций BASIC, поддерживающих самые современные концепции программирования (ярчайший пример — Microsoft Visual Basic). Для этого языка имеются и компиляторы, и интерпретаторы, по популярности он занимает первое место в мире. Pascal (Паскаль). Создан в конце 70 -х годов Николаусом Виртом, во многом напоминает Алгол это первый широко распространенный язык для структурного программирования. Впервые оператор безусловного перехода перестал играть основополагающую роль при управлении порядком выполнения операторов. Отрицательной чертой языка было отсутствие в нем средств для разбиения программы на модули. Вирт осознавал это и разработал язык Modula-2 (1978), в котором идея модуля стала одной из ключевых концепций языка. Логическим продолжением Pascal и Modula являются язык Oberon и Oberon-2.
С (Си). Данный язык был создан в 1972 году Керниганом и Ритчи Создавался как язык для разработки операционной системы UNIX. В 1986 году Бьярн Страуструп создал первую версию языка Cи++, добавив в язык Си объектно-ориентированные черты. Язык стал основой для разработки современных больших и сложных проектов. Java (Джава, Ява). Этот язык был создан компанией Sun в начале 90 -х годов на основе языка Си++. Главная особенность этого языка — компиляция не в машинный код, а в платформно - независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора — виртуальной Java-машины JVM (Java Virtual Machine), версии которой созданы сегодня для любых платформ. По популярности язык Ява сегодня занимает второе место в мире после Бейсика. Основной недостаток этого языка — невысокое быстродействие, так как язык Ява интерпретируемый.
Проблемно-ориентированные языки программирования, предназначенные для описания процессов обработки информации в какойлибо узкой (специфической) области. РПГ – язык для генерации отчетов; Лисп – для обработки списков; GPSS – язык для моделирования; АПЛ – язык для статистической обработки массивов. В рамках реализации идеи «программирование без программистов» Small. Talking – малый разговорный; QBE (Query By Example – запросы по образцу) – программирование на примерах; Fort (Форт) – позволяет на основе имеющихся определений строить новые функции. Используется в системах искусственного интеллекта. Особое место среди языков программирования занимают функциональные языки, в частности Пролог (PROLOG – PROgramming in LOGic) – логическое программирование. Пролог – язык программирования, созданный специально для работы с базами знаний, основанными на фактах и правилами.
Языки программирования баз данных. Для выборки групп записей по определенным признакам создан структурированный язык запросов SQL (Structured Query Language). Языки программирования для Интернета. HTML. Содержит элементарные команды форматирования текста, добавления рисунков, задания шрифтов и цветов, организации ссылок и таблиц, при создании Web-страниц. Perl. Средство эффективной обработки больших генерации текстовых отчетов и управления задачами. текстовых файлов, Tcl/Tk. Скрипт - язык Tсl и библиотека Тk. Позволяет создавать программы с графическим интерфейсом. VRML. Для Интернете. организации виртуальных трехмерных интерфейсов в
Языки моделирования При создании программ и формировании структур баз данных нередко применяются формальные способы их представления — формальные нотации, Такие системы называются CASE-системами. В них активно применяются нотации IDEF, а в последнее время все большую популярность завоевывает язык графического моделирования UML.