Лекция №10. Языки программирования — КиберПедия 

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

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

2018-01-13 269
Лекция №10. Языки программирования 0.00 из 5.00 0 оценок
Заказать работу

  1. Определение ЯП.

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

 

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

 

  1. Состав спецификации ЯП.

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

• Типов и структур данных

• Операционную семантику (алгоритм вычисления конструкций языка)

• Семантические конструкции языка

• Библиотеки примитивов (например, инструкции ввода-вывода)

• Философии, назначения и возможностей языка

 

  1. Определение компилятора.

Компилятор (compiler) — транслятор, который осуществляет перевод всей исходной программы в эквивалентную ей результирующую программу на языке машинных команд. (К. полностью (не построчно, как интерпретатор) преобразует исходный код программы в бинарный, который ОС может выполнять самостоятельно. Т. е. для запуска программы нет необходимости иметь К.. Схема работы К.: исх код прогр->К.->объектный код->ОС->результат)

 

  1. Перечислить этапы компиляции программы.

Процесс компиляции состоит из следующих этапов:

1. Лексический анализ

2. Синтаксический (грамматический) анализ

3. Семантический анализ

4. Оптимизация

5. Генерация кода

  1. Цели лексического анализа программы.

Лексема - последовательность допустимых символов языка программирования, имеющая смысл для транслятора. Транслятор рассматривает программу как последовательность лексем.

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

 

  1. Цели грамматического анализа программы.

Грамматический анализ (грамматический разбор) — это процесс сопоставления линейной последовательности лексем (слов, токенов) языка с его формальной грамматикой. Результатом обычно является дерево разбора

 

  1. Цели семантического анализа программы.

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

 

  1. Определение интерпретатора.

Интерпретатор — программа для интерпретации, т.е. непосредственного исполнения программ (производства вычислений, предписываемых этими программами) из исходного кода на определённом языке. (не генерируют машинного кода, а просто интерпретируют исходный код) (Если программа работает достаточно долго, то через некоторое время после запуска интерпретатор генерирует машинный код и передает управление ему) (читают исходный код программы и выполняет его. Преобразование в бинарный и выполнение происходит построчно. Схема работы интерпретаторов: исх код прогр->интерпретатор->ОС->результат)

  1. Достоинства и недостатки интерпретируемых ЯП.

Достоинства

• Бо́льшая независимость от платформы исполнения по сравнению с компилируемыми средами, так как интерпретатор не создает машинного кода;

• Упрощается построчная отладка программы;

• Более совершенные и наглядные средства диагностики ошибок в программе.

Недостатки

• Программы выполняются более медленно: декодирование элементов программы занимает больше времени, чем выполнение машинного кода;

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

• Программа не может выполняться отдельно без интерпретатора;

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

Компилируемые: ассемблер, С++, Паскаль; интерпретируемые: РНР, ДжаваСкрипт, Питон. С# и Джава – что-то среднее

 

  1. Определение и назначение псевдокода.

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

 

  1. Определение и классы императивных ЯП.

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

 

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

• Неструктурированные

• Процедурные

• Объектно-ориентированные

• Скриптовые

(Описывает, КАК решить задачу и представить результат.
От машины к человеку
Джава, Питон, Си)

  1. Определение и классы декларативных ЯП.

Декларативное программирование – технология программирования, построенная:

• на описании данных;

• на описании искомого результата.

Декларативные

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

• Логические

• Языки разметки

(парадигма программирования, в которой задаётся спецификация решения задачи, т. е. описывается ЧТО представляет собой проблема и ожидаемый результат.
От человека к машине.
Не используют понятия состояния, т. е. не содержат переменных и операторов присваивания.
SQL, HTML)

 

  1. Определение и назначение ЯП низкого уровня.

Низкоуровневый язык программирования (язык программирования низкого уровня) — язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft.NET, ассемблер) процессора.

 

  1. Определение и назначение ЯП высокого уровня.

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

  1. Понятия классов и объектов парадигмы ООП.

Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов.

Класс (class) – множество объектов, связанных общностью структуры и поведения; абстрактное описание данных и поведения (методов) для совокупности похожих объектов, представители которой называются экземплярами класса.

Объект (object) – конкретная реализация класса, обладающая характеристиками состояния, поведения и индивидуальности, синоним экземпляра.

 

  1. Перечислить и охарактеризовать основные понятия ООП: инкапсуляция, наследование, полиморфизм.

Инкапсуляция (encapsulation) – техника, при которой несущественная с точки зрения интерфейса объекта информация прячется внутри него (упаковка данных и функций в единый компонент)

Наследование (inheritance) – свойство объектов, посредством которого экземпляры класса получают доступ к данным и методам классов-предков без их повторного определения.(реализация одного класса в терминах другого)

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

 

  1. Понятие шаблона проектирования.

Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

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

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

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.