Общие принципы построения и использования языков программирования

Содержание

Слайд 2

Предмет

Предмет

Слайд 3

Литература

Семакин И.Г., Шестаков А.И. Основы алгоритмизации и программирования. 2016

Литература Семакин И.Г., Шестаков А.И. Основы алгоритмизации и программирования. 2016

Слайд 4

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

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

Системы программирования

Слайд 5

В них входят:

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

В них входят: Транслятор – системная программа, осуществляющая перевод программы с языка
высокого уровня на язык машинных команд.
Типы трансляторов:
Интерпретатор – программа, которая преобразует каждый оператор программы в машинную команду и сразу передаёт её на выполнение. После выполнения преобразуется следующий оператор и т.д. (Плюс интерпретатора – удобство отладки программы. Минус – эта программа постоянно находится в оперативной памяти).

Слайд 6

Компилятор – преобразует в машинный код всю программу целиком и только

Компилятор – преобразует в машинный код всю программу целиком и только потом
потом отдаёт ее на выполнение (Плюс – не заполняется оперативная память).

Слайд 7

Средства редактирования, отладки и компоновки включают в себя следующие программы:
редактор (позволяет

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

Слайд 8

Библиотеки программ, содержащие заранее подготовленные подпрограммы, которыми могут пользоваться программисты;
Другие программы

Библиотеки программ, содержащие заранее подготовленные подпрограммы, которыми могут пользоваться программисты; Другие программы

Слайд 9

Часто компиляторы или интерпретаторы объединяются с редакторами текстов для ввода и исправления

Часто компиляторы или интерпретаторы объединяются с редакторами текстов для ввода и исправления
текстов программ и отладчик для обнаружения ошибок в программах.

Слайд 10

Существует множество систем программирования. Естественно программисты предпочитают те системы, которые легки в

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

Слайд 11

ПРОГРАММИРОВАНИЕ

ПРОГРАММИРОВАНИЕ – это составление и введение в память компьютера программы на определенном

ПРОГРАММИРОВАНИЕ ПРОГРАММИРОВАНИЕ – это составление и введение в память компьютера программы на
алгоритмическом языке, решающей поставленную задачу, и получение результата ее работы

Слайд 12

ПРОГРАММА – упорядоченная система команд подлежащих исполнению на определенном языке

ПРОГРАММА – упорядоченная система команд подлежащих исполнению на определенном языке

Слайд 13

Язык программирования

Язык программирования — формальная знаковая система, предназначенная для записи программ. Программа обычно

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

Слайд 14

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

Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи
компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.
Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время, как естественные языки используются для общения людей между собой. В принципе, можно обобщить определение «языков программирования» — это способ передачи команд, приказов, четкого руководства к действию; тогда как человеческие языки служат также для обмена информацией.
Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.

Слайд 15

Компилируемые и интерпретируемые языки

Программа на компилируемом языке при помощи специальной программы компилятора

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

Слайд 16

Языки программирования

Низкого уровня
Высокого уровня

Продолжить

Языки программирования Низкого уровня Высокого уровня Продолжить

Слайд 17

Высокоуровневый язык программирования

Высокоуровневый язык программирования — язык программирования, разработанный для быстроты и

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

Слайд 18

Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков

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

Слайд 19

Минусы:

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

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

Слайд 20

Следствие

Добавление поддержки того или иного языка низкого уровня (язык ассемблера) в ряд

Следствие Добавление поддержки того или иного языка низкого уровня (язык ассемблера) в
современных профессиональных высокоуровневых языков программирования.

Слайд 21

Первым языком программирования высокого уровня считается компьютерный язык Plankalkül разработанный немецким инженером

Первым языком программирования высокого уровня считается компьютерный язык Plankalkül разработанный немецким инженером
Конрадом Цузе ещё в период 1942—1946 гг. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957 г.)

Слайд 22

Классы языков программирования

Функциональные
Императивные
Стековые
Процедурные
Векторного программирования
Аспектно-ориентированные
Декларативные
Динамические

Классы языков программирования Функциональные Императивные Стековые Процедурные Векторного программирования Аспектно-ориентированные Декларативные Динамические

Учебные

Описания интерфейсов
Прототипные
Объектно-ориентированные
Рефлексивные
Логического программирования
Параллельного программирования
Сценарные (скриптовые)
Эзотерические

Слайд 23

Функциональные

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

Функциональные В языках функционального программирования основным конструктивным элементом является математическое понятие функции.

Первым, спроектированным функциональным языком стал Лисп. Вариант данного языка широко используется в системе автоматизированного проектирования AutoCAD и называется AutoLISP

Слайд 24

Основные свойства

краткость и простота;
строгая типизация;
модульность;
функции — объекты вычисления;

Основные свойства краткость и простота; строгая типизация; модульность; функции — объекты вычисления;

чистота (отсутствие побочных эффектов);
отложенные (ленивые) вычисления.

Слайд 25

Языки функционального программирования

Лисп
Haskell
ML
Flang
Erlang
Prolog (функционально-логический)

Языки функционального программирования Лисп Haskell ML Flang Erlang Prolog (функционально-логический)

Слайд 26

Императивные

Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон

Императивные Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена
Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».

Слайд 27

Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих процедуру

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

Слайд 28

Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния

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

Слайд 29

Процедурные языки программирования

Ада (язык общего назначения)
Бейсик (версии начиная с Quick Basic

Процедурные языки программирования Ада (язык общего назначения) Бейсик (версии начиная с Quick
до появления Visual Basic)
Си
КОБОЛ
Фортран
Модула-2
Паскаль
ПЛ/1
Рапира
REXX

Слайд 30

Стековый язык

Стековый язык программирования (англ. stack-oriented programming language) — это язык программирования, в

Стековый язык Стековый язык программирования (англ. stack-oriented programming language) — это язык
котором для передачи параметров используется машинная модель стека. Этому описанию соответствует несколько языков, в первую очередь Forth и PostScript, а также многие ассемблерные языки (использующие эту модель на низком уровне — Java, C#). При использовании стека, в качестве основного канала передачи параметров между словами, элементы языка, естественным образом, образуют фразы (последовательное сцепление). Это свойство сближает данные языки с естественными языками.

Слайд 31

Аспектно-ориентированное программирование

Аспектно-ориентированное программирование (АОП) — парадигма программирования, основанная на идее разделения функциональности,

Аспектно-ориентированное программирование Аспектно-ориентированное программирование (АОП) — парадигма программирования, основанная на идее разделения
особенно сквозной функциональности, для улучшения разбиения программы на модули.

Слайд 32

Примеры

Трассировка — типичный пример сквозной функциональности. Другие примеры: контрактное программирование, в частности

Примеры Трассировка — типичный пример сквозной функциональности. Другие примеры: контрактное программирование, в
проверка пред- и пост-условий, обработка ошибок, реализация систем безопасности.

Слайд 33

Структурное программирование

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

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

Слайд 34

Языки структурного программирования

Алгол(1958), Паскаль(1970), Си(1972)

Языки структурного программирования Алгол(1958), Паскаль(1970), Си(1972)

Слайд 35

Декларативный язык программирования

Декларативные языки программирования — это языки программирования высокого уровня, в

Декларативный язык программирования Декларативные языки программирования — это языки программирования высокого уровня,
которых программистом не задается пошаговый алгоритм решения задачи ("как" решить задачу), а некоторым образом описывается, "что" требуется получить в качестве результата. Механизм обработки сопоставление по образцу декларативных утверждений уже реализован в устройстве языка. Типичным примером таких языков являются языки логического программирования (языки, основанные на системе правил).

Слайд 36

Динамические языки программирования

Динамический язык позволяет определять типы данных и осуществлять синтаксический анализ

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

Слайд 37

К динамическим языкам относятся: Python, PHP, Ruby, JavaScript.
Visual Basic можно рассматривать как

К динамическим языкам относятся: Python, PHP, Ruby, JavaScript. Visual Basic можно рассматривать
некую разновидность динамического языка, ему всегда были присущи определённые динамические черты.

Слайд 38

Учебный язык программирования

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

Учебный язык программирования Учебный язык программирования — язык программирования, предназначенный для обучения
Такой язык должен отвечать главному требованию: простота.

Слайд 39

Примеры

Алгоритмический язык
Бейсик
Е-практикум
КуМир
Лого
Робик
Рапира
Форт

Примеры Алгоритмический язык Бейсик Е-практикум КуМир Лого Робик Рапира Форт

Слайд 40

Язык описания интерфейсов

IDL, или язык описания интерфейсов (англ. Interface Description Language или

Язык описания интерфейсов IDL, или язык описания интерфейсов (англ. Interface Description Language
Interface Definition Language) — язык спецификаций для описания интерфейсов, синтаксически похожий на C++.
CORBA IDL — Разработан OMG для описания интерфейсов распределенных объектов — названий методов и типов переменных-аргументов. Создан в рамках обобщенной архитектуры CORBA.
COM IDL — Аналогичная CORBA IDL разработка Microsoft, созданная для описания интерфейсов между модулями COM. В общем случае может рассматриваться как подмножество CORBA IDL.

Слайд 41

Объектно-ориентированный язык программирования

В основе концепции объектно-ориентированного программирования лежит понятие объекта - некоей

Объектно-ориентированный язык программирования В основе концепции объектно-ориентированного программирования лежит понятие объекта -
субстанции, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).

Слайд 42

Особенности

Наследование. Создание нового класса объектов путем добавления новых элементов (методов). В

Особенности Наследование. Создание нового класса объектов путем добавления новых элементов (методов). В
данный момент ОО языки позволяют выполнять множественное наследование, т. е. объединять в одном классе возможности нескольких других классов.
Инкапсуляция. Сокрытие деталей реализации, которое (при грамотном использовании) позволяет вносить изменения в части программы безболезненно для других её частей, что существенно упрощает сопровождение и модификацию ПО.
Полиморфизм. При полиморфизме некоторые части (методы) родительского класса заменяются новыми, реализующими специфические для данного потомка действия. Таким образом, интерфейс классов остаётся прежним, а реализация методов с одинаковым названием и набором параметров различается. С понятием «Полиморфизм» тесно связано понятие «Позднего связывания».
Типизация. Позволяет устранить многие ошибки на момент компиляции, операции проводятся только над объектами подходящего типа.

Слайд 43

Список языков

Eiffel
Simula
Java
C#
C++
Objective-C
Object Pascal (Delphi)
VB.NET

Список языков Eiffel Simula Java C# C++ Objective-C Object Pascal (Delphi) VB.NET

Visual DataFlex
Perl
PHP
Python
Scala
ActionScript
JavaScript
JScript.NET
Ruby
Smalltalk
Ada
Xbase++
X++
Vala

Слайд 44

Прототипное программирование

Прототипное программирование — стиль объектно-ориентированного программирования, при котором отсутствует понятие класса,

Прототипное программирование Прототипное программирование — стиль объектно-ориентированного программирования, при котором отсутствует понятие
а повторное использование (наследование) производится путём клонирования существующего экземпляра объекта — прототипа.

Слайд 45

Примеры:

Self
JavaScript
Cecil
NewtonScript
Io
Slate
MOO
REBOL
Kevo

Примеры: Self JavaScript Cecil NewtonScript Io Slate MOO REBOL Kevo

Слайд 46

Логическое программирование

Логическое программирование — парадигма программирования, а также раздел дискретной математики изучающий

Логическое программирование Логическое программирование — парадигма программирования, а также раздел дискретной математики
методы и возможности этой парадигмы, основанная на выводе новых фактов из данных фактов согласно заданным логическим правилам. Логическое программирование основано на теории математической логики. Самым известным языком логического программирования является Prolog

Слайд 47

Примеры:

Prolog
Mercury, Visual Prolog, Oz и Fril
Planner
QA-4, Popler, Conniver, и

Примеры: Prolog Mercury, Visual Prolog, Oz и Fril Planner QA-4, Popler, Conniver, и QLISP
QLISP

Слайд 48

Язык параллельного программирования

MC# (читается как «эм си шарп», mcsharp), Multiprocessor C#

Язык параллельного программирования MC# (читается как «эм си шарп», mcsharp), Multiprocessor C# )
)

Слайд 49

Скриптовый язык

Скри́птовый язы́к (англ. scripting language, в русскоязычной литературе принято название язык

Скриптовый язык Скри́птовый язы́к (англ. scripting language, в русскоязычной литературе принято название
сценариев) — язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Простые скриптовые языки раньше часто называли языками пакетной обработки (batch languages или job control languages). Сценарии обычно интерпретируются, а не компилируются (хотя часто сценарии компилируются каждый раз перед запуском).

Слайд 50

Эзотерические языки программирования

Эзотерические языки программирования — вид языков программирования, не предназначенных для

Эзотерические языки программирования Эзотерические языки программирования — вид языков программирования, не предназначенных
практического применения. Образец компьютерного юмора.
Эзотерические языки придумываются для развлечения, часто они пародируют «настоящие» или являются абсурдным воплощением «серьёзных» концепций программирования.
Имя файла: Общие-принципы-построения-и-использования-языков-программирования.pptx
Количество просмотров: 20
Количество скачиваний: 0