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

  • Лекции
  • doc
  • 24.02.2017
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Алгоритм – это точно определенное описание способа решения задачи в виде конечной последовательности действий. Иначе, это описание называется формальным Программа – это логически упорядоченная последовательность команд необходимая для управления компьютером. Программа, с которой работает процессор, представляет собой последовательность чисел, называемую машинным кодом. Написать программу в машинном коде достаточно сложно и поэтому для представления алгоритма в виде, понятном компьютеру, служат языки программирования.
Иконка файла материала lect_13_Yazyki_programm.doc
2 семестр. Лекция 5. Языки программирования. Алгоритм и программа..................................................................................................................................................................3 Языки программирования..............................................................................................................................................................3 Уровни языков программирования...............................................................................................................................................3 Поколения языков программирования.........................................................................................................................................4 Классификация и обзор языков программирования...................................................................................................................4 Объектно­ориентированное программирование (ООП)..........................................................................................................5 Декларативные языки программирования...............................................................................................................................6 Языки программирования баз данных......................................................................................................................................6 Языки программирования для компьютерных сетей..............................................................................................................7 Алгоритм и программа Алгоритм  – это точно определенное описание способа решения задачи в виде конечной последовательности действий. Иначе, это описание называется формальным Программа  – это логически упорядоченная последовательность команд необходимая для управления компьютером.  Программа, с которой работает процессор, представляет собой последовательность чисел, называемую  машинным   кодом.   Написать   программу   в   машинном   коде   достаточно   сложно   и поэтому   для   представления   алгоритма   в   виде,   понятном   компьютеру,   служат  языки программирования.  Языки программирования Языки программирования ­ это  искусственные  языки. Они отличаются  от естественных ограниченным,   достаточно   малым   числом   слов,   значение   которых   понятно   компьютеру (транслятору), и очень строгими правилами записи команд (операторов). Совокупность требований для записи команд образуют синтаксис языка, а смысл каждой команды – семантику языка. Нарушение   формы   записи   программы   приводят   к  синтаксической  ошибке,   а   правильно написанная   программа,   но   не   отвечающая   алгоритму,   приводит   к  семантической  ошибке   (по другому – логической, или ошибке времени выполнения программы). Процесс поиска ошибок в программе называют тестированием, процесс устранения ошибок – отладкой программы. Уровни языков программирования Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. “Низкий уровень” –это значит, что операторы близки к машинному коду и ориентированы на конкретный тип процессора. Языком   самого   низкого   уровня   является   язык   Ассемблера,   который   представляет   каждую машинную   команду   в   виде   символьных   условных   обозначений,   называемых  символьными мнемониками.   Перевод   программы   на   языке   Ассемблера   в   машинный   язык   называется транслитерацией.   Программа,   написанная   на   языке   низкого   уровня,   может   быть   использована только в такой среде, в которой она была создана. С помощью языков низкого уровня создаются очень   эффективные   и   компактные   программы,   так   как   разработчик   получает   доступ   ко   всем возможностям процессора. Языки программирования высокого уровня ближе и понятнее человеку, чем компьютеру. В программах,   созданных   на   языках   высокого   уровня,   особенности   компьютерных   систем   не учитываются, перенос программ на уровне исходных текстов на другие платформы не создает трудностей,   если   в   них   создан   транслятор   этого   языка.   Программы   разрабатывать   на   языках высокого уровня проще, а ошибок допускается меньше. 3Поколения языков программирования. Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50­х годов, когда первые компьютеры только появились на свет. Это был первый язык ассемблера, созданный по принципу « одна инструкция – одна строка». Расцвет второго поколения языков программирования пришелся на конец 50­х – начало 60­х годов. Тогда был разработан символический ассемблер, в котором появилось понятие переменной. Он стал первым полноценным языком программирования. Благодаря его возникновению заметно возросли скорость разработки и надежность программ. Появление третьего поколения языков программирования принято относить к 60­м годам. В это время родились универсальные языки высокого уровня, с их помощью удается решать задачи из любых  областей.  Такие   качества  новых  языков,  как   относительная  простота,  независимость  от конкретного   компьютера   и   возможность   использования   мощных   синтаксических   конструкций, позволили резко повысить производительность труда программистов. Подавляющее большинство языков этого поколения успешно применяется и сегодня. С   начала   70­х   годов   по   настоящее   время   продолжается   период   языков   четвертого поколения. Эти языки предназначены для реализации крупных проектов, повышения их надежности и скорости создания. Они обычно ориентированы на специализированные области применения, где хороших результатов можно добиться, используя не универсальные, а проблемно­ориентированные языки, оперирующие конкретными понятиями узкой предметной области. Как правило, в эти языки встраиваются мощные операторы, позволяющие одной строкой описать такую функциональность, для реализации которой в языках младших поколений потребовались бы тысячи строк исходного кода. Рождение  языков пятого поколения произошло в середине  90­х годов. К ним относятся также системы автоматического создания прикладных программ с помощью визуальных средств разработки,  без  знания программирования.  Главная  идея,  которая закладываемая  в эти  языки,­ возможность автоматического формирования результирующего текста на универсальных  языках программирования   (который   потом   требуется   откомпилировать).   Инструкции   же   вводятся   в компьютер в максимально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием. Классификация и обзор языков программирования Деление языков программирования на классы можно представить на схеме таким образом: Языки программирования Процедурные Объектно­ ориентированные Декларативные Операционные Структурные Объектные Визуальные Функциональные Логические   Программа,   написанная   на   процедурном   языке, Процедурное программирование  ­ есть отражение фон Неймановской архитектуры компьютера.   представляет   собой последовательность   команд,   определяющих   алгоритм   решения   задачи.   Основная   идея процедурного программирования ­ использование памяти для хранения данных. Основная команда­ присвоение,  с   помощью   которой   определяется   и   меняется   память   компьютера.   Программа производит   преобразование   содержимого   памяти,   изменяя   его   от   исходного   состояния   к результирующему.  Различают такие языки процедурного программирования:   Язык  Фортран  создан   в   начале   50­х   годов   20­го   века   для   программирования   научно­ технических задач; 4 Кобол – создан в конце 60­х годов 20­го века для решения задач обработки больших объемов данных, хранящихся на различных носителях данных;  Алгол  (1960 год) – это многоцелевой расширенный язык программирования. В нем впервые введены понятия «блочная структура программы» и «динамическое распределение памяти»;  В середине 60­х годов 20­го века был создан специализированный язык программирования для начинающих – BASIC. Характеризуется простотой освоения и наличием универсальных средств для решения научных, технических и экономических задач, а также задач, например, игровых. Все перечисленные выше языки были ориентированы на различные классы задач, но они в той или иной мере были привязаны к конкретной архитектуре ЭВМ.   В   1963­1966гг   был   создан   многоцелевой   универсальный   язык  PL­1.   Этот   язык   хорошо приспособлен для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения.  Язык  Паскаль   (PASCAL)  (1968­1971гг)­   язык   процедурного   программирования   наиболее популярный для ПК, который и в настоящее время успешно применяется. В основу языка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему). К основным   принципам,   которыми   обладает   Паскаль,   можно   отнести:   а)  Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных;   б)  Программирование   «сверху­вниз»,  когда   задача   делится   на   простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз.  К языкам процедурного программирования можно отнести язык АДА (1979 г) Язык назван в честь   первой   программистки   Ады   Лавлейс­   дочери   Байрона.   Его   отличает   модульность конструкций.   Язык  СИ  (начало 70­х годов) также относится к языкам процедурного программирования. Первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Одной из особенностей языка СИ является то, что различия между выражениями и операторами сглаживаются,  что приближает  его к функциональным языкам   программирования.   Кроме   того,  в   языке   СИ  отсутствует   понятие  процедуры,  а использование подпрограмм основано на понятии  функции, которая может сочетать в себе возможности процедуры. С одной стороны, по набору управляющих конструкций и структур данных его можно отнести к языкам высокого уровня, а с другой – он имеет набор средств прямого   обращения   к   функциональным   узлам   компьютера,   а   это   означает,   что   его   можно использовать как операционный язык. Объектно­ориентированное программирование (ООП) Объектно­ориентированное   программирование   (ООП)  —  это  метод  программирования, при   использовании   которого   главными   элементами   программ   являются  объекты.   В   языках программирования   понятие  объекта  реализовано   как   совокупность  свойств  (структур   данных, характерных для данного объекта), методов их обработки (подпрограмм изменения их свойств) и событий,  на   которые   данный   объект   может   реагировать   и,   которые   приводят,   как   правило,   к изменению свойств объекта. Объединение данных и свойственных им процедур обработки в одном объекте, называется инкапсуляцией     и является одним из важнейших принципов ООП. Другим фундаментальным понятием является класс. Класс это шаблон, на основе которого может   быть   создан   конкретный   программный   объект,   он   описывает   свойства   и   методы, определяющие поведение объектов этого класса. Каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса. Следующими важнейшими принципами ООП являются наследование и полиморфизм.  Наследование     предусматривает создание новых классов на базе существующих и позволяет классу потомку иметь (наследовать) все свойства класса – родителя.  5Полиморфизм      означает,   что   рожденные   объекты   обладают   информацией   о   том,   какие методы они должны использовать в зависимости от того, в каком месте цепочки они находятся. Другим важнейшим принципом ООП является  модульность –  объекты заключают в себе полное   определение   их   характеристик,   никакие   определения   методов   и   свойств   не   должны располагаться вне его, это делает возможным свободное копирование и внедрение одного объекта в другие. Наиболее современными языками программирования являются  С++  и  Java. С середины   90­х   годов   многие   объектно–ориентированные   языки   реализуются   как  системы   визуального проектирования, в которых интерфейсная часть программного продукта создается в диалоговом режиме,   практически   без   написания   программных   операторов.   К   объектно   –   ориентированным системам визуального проектирования относятся Visual Basic, Delphi, C++ Builder, Visual C++. Язык VBA (Visual Basic for Application) – язык приложений Microsoft Office (Excel, Word, Power Point и др). VBA соблюдает основной синтаксис языка и правила программирования языков Basic  –   диалектов,   позволяет   создавать   макросы   для   автоматизации   выполнения   некоторых операций и графический интерфейс пользователя, интеграцию между различными программными продуктами. Декларативные языки программирования К ним относятся функциональные и логические языки программирования. Функциональное   программирование­   это   способ   составления   программ,   в   которых единственным   действием   является  вызов   функции.   В   функциональном   программировании   не используется   память,   как   место   для   хранения   данных,   а,   следовательно,   не   используются промежуточные   переменные,   операторы   присваивания   и   циклы.   Ключевым   понятием   в функциональных языках является выражение. Программа, написанная на функциональном языке, представляет   собой   последовательность   описания   функций   и   выражений.   Выражение вычисляется   сведением   сложного   к   простому.   Все   выражения   записываются   в   виде   списков. Первым языком стал язык Лисп (LISP, LIST Processing­ обработка списков) создан в 1959г. Этот язык позволяет обрабатывать большие объемы текстовой информации. Логическое программирование­ это программирование в терминах логики. В 1973 году был создан язык искусственного интеллекта Пролог (PROLOG) (Programming in Logic).   Программа   на   языке   Пролог   строится   из   последовательности   фактов   и   правил,   затем формулируется  утверждение,  которое  Пролог  пытается доказать  с помощью правил.  Язык сам ищет решение с помощью методов поиска и сопоставления, которые в нем заложены. Логические программы не отличаются высоким быстродействием, так как процесс их выполнения сводится к построению прямых и обратных цепочек рассуждений разнообразными методами поиска. Языки программирования баз данных. Языки программирования баз данных отличаются от алгоритмических языков прежде всего своим   функциональным   назначением.   При   работе   с   базами   данных   выполняются   следующие операции:   создание, преобразование и удаление таблиц в БД;  поиск, отбор, сортировка по запросам пользователя;  добавление новых записей и модификация существующих, удаление записей и др. Для   обработки   больших   массивов   информации   и   выборки   записей   по   определенным признакам был создан структурированный язык запросов  SQL  (Structured  Query  Language). Язык SQL –  это стандартный язык работы с реляционными базами данных. Сегодня в мире ведущие производители СУБД: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. Практически в каждой СУБД имеется свой встроенный язык   работы   с   БД.   Так,   например,   в  Oracle  имеется   встроенный   язык  PL/SQL,   в  Informix  – INFORMIX 4GL, в Adabas – Natural и т.д. 6Языки программирования для компьютерных сетей Языки   программирования   для   компьютерных   сетей   являются   интерпретируемыми. Интерпретаторы для них распространяются бесплатно, а сами программы – в исходных текстах. Такие языки называются скрипт – языками. Язык  HTML  (Hyper  Text  Markup  Language) – универсальный язык разметки гипертекста, используемый для подготовки Web документов для Internet. Язык позволяет форматировать текст, добавлять графические образы, работать с таблицами и организовывать связь одного документа с другим с помощью механизма гиперссылок. Язык  Perl  (80   г)   содержит   многочисленные   функции   работы   со   строками,   массивами, всевозможные средства преобразования данных.  Язык  PHP  (1995­1997гг) обладает средствами доступа к БД и используется создателями динамических сайтов во всем мире. Язык Tcl/Tk (конец 80­х годов) состоит из мощных команд, предназначенных для работы с абстрактными   нетипизированными   объектами   и   позволяет   создавать   программы   с   графическим интерфейсом. Язык  VRML  (1994г)   создан   для   организации   виртуальных   трехмерных   интерфейсов   в Интернете. Язык  XML.   С   1996г   идет   работа   над   созданием   универсального   языка   структуры документов. Может стать заменой языка HTML. 7