Языки программирования и методы трансляции

Размер: px
Начинать показ со страницы:

Download "Языки программирования и методы трансляции"

Транскрипт

1 Языки программирования и методы трансляции Подпрограммы

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

3 Стек вызовов При вызове подпрограммы в стек помещается новый стековый кадр (запись активации) Регистр указателя стека содержит адрес последней занятой ячейки стека или первой свободной ячейки. Регистр указателя кадра содержит адрес ячейки кадра.

if ($this->show_pages_images && $page_num < DocShare_Docs::PAGES_IMAGES_LIMIT) { if (! $this->doc['images_node_id']) { continue; } // $snip = Library::get_smart_snippet($text, DocShare_Docs::CHARS_LIMIT_PAGE_IMAGE_TITLE); $snips = Library::get_text_chunks($text, 4); ?>

4 Стратегии размещения в памяти Статическое Код Глобальные переменные Статические переменные Явные константы (строки, множества,...) Малые значения скалярных типов могут храниться вместе с инструкциями

5 Вложенные подпрограммы Из B, C, D видны все пять подпрограмм. Из A, E видны A, B и E, но не C и D. Последовательность вызовов: A, E, B, D, C

6 Содержимое стекового кадра Учетная информация адрес возврата (динамическая ссылка) содержимое регистров номер строки элементы дисплея статическая ссылка аргументы и возвращаемые значения локальные переменные временные значения

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

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

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

10 Стековый кадр

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

12 Параметры, доступные только для чтения Параметры READONLY в языке Modula-3 Эффективность передачи по ссылке и безопасность передачи по значению Компилятор запрещает применение к таким параметрам операторов присваивания, чтение их из файла, передачу в другую подпрограмму по ссылке. Передача небольших значений параметров READONLY реализована как передача значения, больших как передача адреса.

13 Режимы передачи параметров в языке Ada В языке Ada используется семантический подход: in: вызванная подпрограмма только читает out: вызванная подпрограмма записывает и затем может читать (формальные параметры не инициализированы); изменение значений действительных параметров in out: вызванная подпрограмма читает и записывает; изменение значений действительных параметров В языке Ada режим in out реализован передачей параметров по значению и результату для скалярных типов и по значению и результату или по ссылке для структурных объектов.

14 В языках, использующих переменные-ссылки (Lisp, Clu), передача по ссылке (совместное использование) очевидный подход к передаче параметров. Передается ссылка; действительный и формальный параметр ссылаются на один объект. Значение действительного параметра копируется (как при передаче по значению), но изменения объекта видны в вызывающей подпрограмме (как при передаче по ссылке).

15 Fortran по ссылке При передаче константы компилятор создает для нее временное хранилище. Изменение значения во временном хранилище не влияет на работу программы. по имени метод языка Algol. Грубо говоря, текстуальная подстановка (процедура со всеми именованными параметрами работает как макрос) осуществляется передача скрытых процедур (thunk)

16 Режимы передачи параметров по значению Языки C/C++, Pascal, Java/C# (нессылочные переменные) Механизм реализации по значению Допустимые операции чтение, запись Изменение действительных параметров? нет Альтернативные имена? нет

17 Режимы передачи параметров in, const Языки Ada, C/C++, Modula-3 Механизм реализации по значению или по ссылке Допустимые операции только чтение Изменение действительных параметров? нет Альтернативные имена? возможны

18 Режимы передачи параметров out Языки Ada Механизм реализации по значению или по ссылке Допустимые операции только запись Изменение действительных параметров? да Альтернативные имена? возможны

19 Режимы передачи параметров по значению и результату Языки Algol W Механизм реализации по значению Допустимые операции чтение и запись Изменение действительных параметров? да Альтернативные имена? нет

20 Режимы передачи параметров var, ref Языки Fortran, Pascal, C++ Механизм реализации по ссылке Допустимые операции чтение и запись Изменение действительных параметров? да Альтернативные имена? да

21 Режимы передачи параметров совместное использование Языки Lisp/Scheme, ML, Java/C# (ссылочные типы) Механизм реализации по значению или по ссылке Допустимые операции чтение и запись Изменение действительных параметров? да Альтернативные имена? да

22 Режимы передачи параметров in out Языки Ada Механизм реализации по значению или по ссылке Допустимые операции чтение и запись Изменение действительных параметров? да Альтернативные имена? возможны

23 Режимы передачи параметров по имени Языки Algol 60, Simula Механизм реализации замыкание (thunk) Допустимые операции чтение и запись Изменение действительных параметров? да Альтернативные имена? да

24 Режимы передачи параметров по необходимости Языки Haskell, R Механизм реализации замыкание (thunk) с использованием мемоизации Допустимые операции чтение и запись* Изменение действительных параметров? да* Альтернативные имена? да*

Языки программирования и методы трансляции

Языки программирования и методы трансляции Языки программирования и методы трансляции Имена, связывание, области видимости 1 Время связывания 2 3 Статические области видимости Динамические области видимости Имя, область видимости и связывание Имя

Подробнее

Факультет БИЗНЕС-ИНФОРМАТИКИ. Языки программирования и методы трансляции (ПО)

Факультет БИЗНЕС-ИНФОРМАТИКИ. Языки программирования и методы трансляции (ПО) Правительство Российской Федерации Государственное образовательное бюджетное учреждение высшего профессионального образования Государственный университет Высшая школа экономики Факультет БИЗНЕС-ИНФОРМАТИКИ

Подробнее

Введение Императивные языки абстракция архитектуры фон Неймана Память Процессор Переменные и их атрибуты Область действия, срок жизни, проверка типов,

Введение Императивные языки абстракция архитектуры фон Неймана Память Процессор Переменные и их атрибуты Область действия, срок жизни, проверка типов, Имена, связывание, проверка типов и области действия Введение Императивные языки абстракция архитектуры фон Неймана Память Процессор Переменные и их атрибуты Область действия, срок жизни, проверка типов,

Подробнее

Концепции языков программирования

Концепции языков программирования Распределение памяти Распределение памяти 1 Статическое выделение пямяти 2 3 Распределение памяти 1 Статическое выделение пямяти 2 3 Статическое выделение пямяти Выделение памяти на этапе загрузки программы

Подробнее

Распределение памяти

Распределение памяти Распределение памяти Распределение памяти - это процесс, в результате которого отдельным элементам исходной программы ставятся в соответствие адрес, размер и атрибуты области памяти, необходимой для размещения

Подробнее

Средства автоматизации построения трансляторов. LEX генератор лексических анализаторов. YACC генератор синтаксических анализаторов

Средства автоматизации построения трансляторов. LEX генератор лексических анализаторов. YACC генератор синтаксических анализаторов Средства автоматизации построения трансляторов LEX генератор лексических анализаторов YACC генератор синтаксических анализаторов Генерация кода 1) Распределение памяти для данных и команд программы 2)

Подробнее

Языки программирования и методы трансляции

Языки программирования и методы трансляции Языки программирования и методы трансляции Управление потоком Управление потоком Основные механизмы Последовательное выполнение Выбор Итерация Абстракция процедур Рекурсия Параллельное выполнение Обработка

Подробнее

Парадигмы программирования. Денис С. Мигинский

Парадигмы программирования. Денис С. Мигинский Парадигмы программирования Денис С. Мигинский Понятие парадигмы Парадигма (философия науки) устоявшаяся система научных взглядов, в рамках которой ведутся исследования (Т. Кун) Парадигма программирования

Подробнее

Языки программирования и методы трансляции

Языки программирования и методы трансляции Языки программирования и методы трансляции Введение 1 Спектр языков программирования 2 Наибольший общий делитель Сначала программы писали так: Пример (Программа вычисления н.о.д. для x86) 55 89 e5 53 83

Подробнее

13. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ

13. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ 13. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ Статическими называются такие данные, которые не меняют свои размеры в течение всего времени своего существования. Регулярный и комбинированный типы языка Pascal это пример

Подробнее

Тема 14. Динамическая память и указатели.

Тема 14. Динамическая память и указатели. Тема 14. Динамическая память и указатели. 14.1. Динамическая память Большинство элементов программы в программировании в Object Pascal подразделяются на динамические и статические. Статические элементы,

Подробнее

Пояснительная записка Данный практикум «Основы программирования» является расширением курса «Информатика и ИКТ». Курс рассчитан на 35 часов.

Пояснительная записка Данный практикум «Основы программирования» является расширением курса «Информатика и ИКТ». Курс рассчитан на 35 часов. Пояснительная записка Данный практикум «Основы программирования» является расширением курса «Информатика и ИКТ». Курс рассчитан на 35 часов. Содержание обучения, представленное в программе элективного

Подробнее

2. Место дисциплины в структуре ООП: дисциплина базовой части Предварительные знания и навыки. информатики.

2. Место дисциплины в структуре ООП: дисциплина базовой части Предварительные знания и навыки. информатики. I. Аннотация 1. Цели и задачи дисциплины: дать общее представление обучающимся о принципах программирования и разработки программного обеспечения, ознакомить с алгоритмическим языком C++ и основными теоретико-численными

Подробнее

Лабораторная работа 3. Подпрограммы и стек. Командный цикл процессора. Цель: Реализация подпрограмм. Исследование работы микрокоманд. Часть 1.

Лабораторная работа 3. Подпрограммы и стек. Командный цикл процессора. Цель: Реализация подпрограмм. Исследование работы микрокоманд. Часть 1. Лабораторная работа 3. Подпрограммы и стек. Командный цикл процессора. Цель: Реализация подпрограмм. Исследование работы микрокоманд. Подпрограммы и стек Часть 1. В программировании часто встречаются ситуации,

Подробнее

Оглавление. Введение Глава 1. Определение и проблемы языков программирования Глава 2. Виртуальные машины и трансляция языков...

Оглавление. Введение Глава 1. Определение и проблемы языков программирования Глава 2. Виртуальные машины и трансляция языков... Оглавление Введение............................................................ 15 Благодарности............................................................................. 21 Глава 1. Определение и проблемы

Подробнее

Замыкания и анонимные функции в языках C#, Java. function initadder(x) { function adder(y) { return x + y } // захвачена переменная x return adder

Замыкания и анонимные функции в языках C#, Java. function initadder(x) { function adder(y) { return x + y } // захвачена переменная x return adder Основные характеристики функциональных языков программирования. Использование понятий функционального программирования (замыкания, анонимные функции) в современных объектно-ориентированных языках Функциональные

Подробнее

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ»

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ» МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ» Спеціальність 6.040302 Інформатика Дисципліна «Програмування» Підсумкова модульна контрольна

Подробнее

Составные типы данных

Составные типы данных Глава 10 Составные типы данных Десятая глава освещает широкий круг составных типов данных: массивы, строки символов, записи, множества, кортежи и списки. Массивы рассматриваются самым пристальным образом.

Подробнее

Функции ref out определении вызове Main()

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

Подробнее

ÀÑÒÜ I. ÏÅÐÂÎÅ ÇÍÀÊÎÌÑÒÂÎ Ñ C++

ÀÑÒÜ I. ÏÅÐÂÎÅ ÇÍÀÊÎÌÑÒÂÎ Ñ C++ Ñîäåðæàíèå Введение 16 О чем эта книга 16 Прилагаемый компакт-диск 16 Что такое C++ 17 Соглашения, используемые в книге 17 Как организована эта книга 18 И еще... 18 Часть I. Первое знакомство с C++ 18

Подробнее

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ»

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ» ВАРІАНТ 1 1. Операторы описания типов данных, констант и пользовательских типов данных в системах программирования на языке BASIC и FORTRAN. 2. Написать программу поиска среднего значения элементов заданного

Подробнее

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

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

Подробнее

Тема 11. Модульное программирование: процедуры, функции, модули.

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

Подробнее

2017 МГУ/ВМК/СП. Лекция февраля

2017 МГУ/ВМК/СП. Лекция февраля Лекция 5 22 февраля Организация вызова функций Вопросы Передача управления и возвращение обратно Вычисление значений фактических параметров и их размещение Передача возвращаемого значения Размещение автоматических

Подробнее

2012 МГУ/ВМиК/СП. Лекция марта

2012 МГУ/ВМиК/СП. Лекция марта Лекция 12 21 марта Промежуточные итоги Типы данных языка Си: скалярные типы, составные типы Вычисление выражений Управляющие операторы Машинные типы данных Арифметические, логические, битовые команды Условная

Подробнее

4. Понятие класса. Программа 7. Класс Box

4. Понятие класса. Программа 7. Класс Box 4. Понятие класса Класс определяет новый тип данных, используя который можно определять переменные этого типа, которые называются объектами или экземплярами класса. Объявление класса имеет вид: class classname

Подробнее

Содержание. Введение 14. Глава 1. Обзор основ 15. Глава 2. Элементы языка Турбо Паскаль 35

Содержание. Введение 14. Глава 1. Обзор основ 15. Глава 2. Элементы языка Турбо Паскаль 35 Содержание Введение 14 Глава 1. Обзор основ 15 1.1. Примеры алгоритмов 15 1.2. Компьютеры и программы 17 1.2.1. Структура компьютера 17 1.2.2. Данные и программы 18 1.3. Средства создания программ 20 1.3.1.

Подробнее

ВЫЗОВ ФУНКЦИЙ. КАДР СТЕКА.

ВЫЗОВ ФУНКЦИЙ. КАДР СТЕКА. ВЫЗОВ ФУНКЦИЙ. КАДР СТЕКА. Вызов функции. Вопросы. 1. Где выделить место под параметры? 2. Где выделить место под локальные переменные? 3. Кто освобождает выделенную память? 4. Куда поместить результат

Подробнее

4 Классы. 4.1 Основы классов

4 Классы. 4.1 Основы классов 4 Классы Класс центральный компонент Java. Поскольку класс определяет форму и сущность объекта, он является той логической конструкцией, на основе которой построен весь язык. Как таковой, класс образует

Подробнее

Программирование в C++ Преподаватель Колотова Людмила Павловна

Программирование в C++ Преподаватель Колотова Людмила Павловна Программирование в C++ Преподаватель Колотова Людмила Павловна 2 Содержание 4-го занятия по практике Работа с функциями. Простые и библиотечные функции Передача аргументов в функцию Значение, возвращаемое

Подробнее

Тема 5. Структура программы, выражения, операции, операторы

Тема 5. Структура программы, выражения, операции, операторы Тема 5. Структура программы, выражения, операции, операторы 5.1. Структура программы. Программы в среде разработки Delphi строятся на принципах модульной компоновки. Модуль это автономно компилируемая

Подробнее

Тема 4. Введение в функциональное программирование

Тема 4. Введение в функциональное программирование Тема 4. Введение в функциональное программирование Автор: А. С. Власовских Лицензия: Creative Commons Attribution-Noncommercial-Share Alike 3.0 Тема 4. Введение в функциональное программирование 1 План

Подробнее

Тема 9. Типы. Структурированные типы.

Тема 9. Типы. Структурированные типы. Тема 9. Типы. Структурированные типы. В Object Pascal четыре структурированных типа: массивы, записи, множества и файлы. Любой из структурированных типов характеризуется множественностью образующих этот

Подробнее

Вопросы для самопроверки

Вопросы для самопроверки Вопросы для самопроверки Программирование на языке С 11 ноября 2014 г. Лекция 1. Вводная 1. Какие существуют аспекты разработки ПО? Подходы к разработке? 2. Какие признаки характеризуют любительский подход?

Подробнее

Б1.В.ДВ.6.1 Теория и практика языков программирования

Б1.В.ДВ.6.1 Теория и практика языков программирования Б1.В.ДВ.6.1 Теория и практика языков программирования Цели и задачи изучения дисциплины Целью дисциплины является формирование знаний и практических необходимых для понимания и грамотного использование

Подробнее

Направление подготовки (специальность) «Информационные системы и технологии» Профиль Информационные системы и технологии в строительстве

Направление подготовки (специальность) «Информационные системы и технологии» Профиль Информационные системы и технологии в строительстве Аннотация к дисциплине «Основы программирования и алгоритмизации» Направление подготовки (специальность) 09.03.02 «Информационные системы и технологии» Профиль Информационные системы и технологии в строительстве

Подробнее

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

Языки программирования 3. Влияние архитектуры Структура компьютера 1. Данные; 2. Элементарные операции; 3. Управление последовательностью действий; 4. Доступ к данным; 5. Управление памятью; 6. Операционная среда. 2 Данные Хранение:

Подробнее

Содержание. Благодарности 21 Об авторе 23 Ждем ваших отзывов! 24

Содержание. Благодарности 21 Об авторе 23 Ждем ваших отзывов! 24 Содержание Предисловие 15 Причины для изучения C++ 15 Причины для чтения данной книги 16 Красавица и чудовище 16 Языки в науке и технике 18 Соглашения об оформлении 19 Благодарности 21 Об авторе 23 Ждем

Подробнее

Шины и прерывания. Маркова В.П., Остапкевич М.Б., Перепелкин В.А.

Шины и прерывания. Маркова В.П., Остапкевич М.Б., Перепелкин В.А. Шины и прерывания Маркова В.П., Остапкевич М.Б., Перепелкин В.А. 2016 Шина это коммуникационное аппаратное обеспечение представляющее собой набор проводников несущих двоичные сигналы Функции шин Синхронизация

Подробнее

СОДЕРЖАНИЕ ВВЕДЕНИЕ... 3

СОДЕРЖАНИЕ ВВЕДЕНИЕ... 3 СОДЕРЖАНИЕ ВВЕДЕНИЕ... 3 1. РАЗРАБОТКА И ВЫПОЛНЕНИЕ ПРОГРАММ В КОНСОЛЬНОМ РЕЖИМЕ DELPHI 7... 4 1.1. Запуск Delphi... 4 1.2. Работа с консольным приложением... 4 1.2.1. Создание консольного приложения...

Подробнее

5. Системы команд микропроцессоров и микроконтроллеров

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

Подробнее

Языки программирования. Генерация кода

Языки программирования. Генерация кода Генерация кода Содержание Распределение памяти Организация таблиц Подпрограмма генерации кода Методы оптимизации кода Распределение памяти Программа Стек подпрограмм Константы Переменные Временные результаты

Подробнее

Лекция 2. Как выполняются программы на C++

Лекция 2. Как выполняются программы на C++ http://compscicenter.ru 1/21 Лекция 2. Как выполняются программы на C++ Александр Смаль CS центр 15 сентября 2016 Санкт-Петербург http://compscicenter.ru 2/21 Типы данных Целочисленные: 1. char (символьный

Подробнее

Ю.И.Рыжиков ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ POWERSTATION ДЛЯ ИНЖЕНЕРОВ. ПРАКТИЧЕСКОЕ РУКОВОДСТВО Предлагаемая вашему вниманию книга является

Ю.И.Рыжиков ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ POWERSTATION ДЛЯ ИНЖЕНЕРОВ. ПРАКТИЧЕСКОЕ РУКОВОДСТВО Предлагаемая вашему вниманию книга является Ю.И.Рыжиков ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ POWERSTATION ДЛЯ ИНЖЕНЕРОВ. ПРАКТИЧЕСКОЕ РУКОВОДСТВО Предлагаемая вашему вниманию книга является практическим руководством но новейшей версии Фортрана-90 для ПК,

Подробнее

Глава 15 Делегаты БИЛЛ ВАГНЕР ЭРИК ЛИППЕРТ

Глава 15 Делегаты БИЛЛ ВАГНЕР ЭРИК ЛИППЕРТ Глава 15 Делегаты Делегаты предназначены для случаев, в которых C++, Pascal и Modula используют указатели на функции. В отличие от последних в C++ делегаты являются полностью объектно-ориентированными.

Подробнее

Компьютерная Академия Шаг Урок 12. Программирование на C. Оглавление

Компьютерная Академия Шаг Урок 12. Программирование на C. Оглавление Оглавление 1. Статическое и динамическое выделение памяти. 2. Указатели. 3. Указатели и массивы. 4. Указатели - аргументы функций. Передача аргументов по указателю. 5. Домашнее задание. 1 Статическое и

Подробнее

Содержание. Часть I. Основы Java 21

Содержание. Часть I. Основы Java 21 Содержание Об авторе 13 Введение 15 Как работать с этой книгой 15 Соглашения, используемые в книге 15 Что можно не читать 16 Несколько предположений 17 Структура книги 18 Часть I. Основы Java 18 Часть

Подробнее

4.13. Строки. 10 символов char string[11]; "строка в кавычках" Строковая константа - char str[ ] = Counted by compiler! ;

4.13. Строки. 10 символов char string[11]; строка в кавычках Строковая константа - char str[ ] = Counted by compiler! ; -одномерные массивы типа char, заканчивающийся нулевым байтом - '\0 или '\x0 10 символов char string[11]; 4.13. Строки Строковая константа - "строка в кавычках" добавляется '\0 char str[ ] = Counted by

Подробнее

Концепции языков программирования

Концепции языков программирования Объектно-ориентированные языки программирования Темы 1 История 2 3 4 5 История Абстракция данных: SIMULA 67 (1962 1967) Спроектирован в Норвегии Нигардом и Далем, главным образом, для моделирования сложных

Подробнее

СОДЕРЖАНИЕ ПРОГРАММЫ If-Then-Else Select-Case For-Next While-Wend Do-Loop For-Each

СОДЕРЖАНИЕ ПРОГРАММЫ If-Then-Else Select-Case For-Next While-Wend Do-Loop For-Each СОДЕРЖАНИЕ ПРОГРАММЫ 1. Какие задачи решает информатика в различных сферах экономики. 2. Определение информатики, взаимодействие данных, информации и знаний. 3. Краткая характеристика пяти основных видов

Подробнее

ОДОБРЕНА Предметной (цикловой) комиссией по спец.дисциплинам. /Е.М.Грибкова/ Подпись Ф.И.О.

ОДОБРЕНА Предметной (цикловой) комиссией по спец.дисциплинам. /Е.М.Грибкова/ Подпись Ф.И.О. 1 ОДОБРЕНА Предметной (цикловой) комиссией по спец.дисциплинам Разработана на основе Федерального государственного образовательного стандарта по специальности среднего профессионального образования 3001

Подробнее

Семинар 5. Статические элементы данных и функции. Наследование. Виртуальные методы.

Семинар 5. Статические элементы данных и функции. Наследование. Виртуальные методы. Семинар 5. Статические элементы данных и функции. Наследование. Виртуальные методы. 1. Статическая (static) переменная класса Добавим в определение класса статическую переменную: private: // double x;

Подробнее

Лекция 5 Базовые понятия программирования

Лекция 5 Базовые понятия программирования Лекция 5 Базовые понятия программирования 1. Эволюция языков программирования 2. Классификация языков программирования 3. Элементы языков программирования 4. Понятие системы программирования. Исходный,

Подробнее

ЛЕКЦИЯ 4 МАССИВЫ И УКАЗАТЕЛИ

ЛЕКЦИЯ 4 МАССИВЫ И УКАЗАТЕЛИ ЛЕКЦИЯ 4 МАССИВЫ И УКАЗАТЕЛИ 1. Массивы Массив это набор однородных элементов фиксированной длины. Память для массивов выделяется одним куском. При инициализации массива записывается тип элементов массива,

Подробнее

Common Lisp. Введение

Common Lisp. Введение Common Lisp. Введение Kalyanov.Dmitry@gmail.com 10 апреля 2009 года Содержание 1 Введение 2 3 4 5 6 Одна цитата Lisp is worth learning for the profound enlightenment experience you will have when you finally

Подробнее

Архитектура современных микропроцессоров и мультипроцессоров

Архитектура современных микропроцессоров и мультипроцессоров Архитектура современных микропроцессоров и мультипроцессоров Лекция 2 10 октября 2016 г., ФИТ НГУ Вопросы по предыдущему материалу Что такое программная и аппаратная архитектура? Из каких основных компонентов

Подробнее

Содержание. Часть I. Описание 27. Предисловие 17 Благодарности 24. Глава 1. Вводный пример 29

Содержание. Часть I. Описание 27. Предисловие 17 Благодарности 24. Глава 1. Вводный пример 29 Содержание Предисловие 17 Благодарности 24 Часть I. Описание 27 Глава 1. Вводный пример 29 1.1. Готическая безопасность 29 1.1.1. Контроллер мисс Грант 30 1.2. Модель конечного автомата 31 1.3. Программирование

Подробнее

Web-разработка на PHP-технологиях Курс лекций и семинаров для студентов, желающих научиться основам Web-разработки на PHP. Осень-Зима 2014.

Web-разработка на PHP-технологиях Курс лекций и семинаров для студентов, желающих научиться основам Web-разработки на PHP. Осень-Зима 2014. Web-разработка на PHP-технологиях Курс лекций и семинаров для студентов, желающих научиться основам Web-разработки на PHP Осень-Зима 2014 Лекция 3 PHP Синтаксис языка Переменные, константы, типы данных

Подробнее

Лектор проф. В. Н. Касьянов. 2-й семестр. 1. Введение

Лектор проф. В. Н. Касьянов. 2-й семестр. 1. Введение ПРОГРАММИРОВАНИЕ Лектор проф. В. Н. Касьянов 2-й семестр 1. Введение Понятие алгоритма и его основные свойства, блок-схемные определения как пример уточнения понятия алгоритма. Понятие компьютера, принципы

Подробнее

ПОСТРОЕНИЕ МОДЕЛИ ДАННЫХ ПРОГРАММЫ ПО ИСХОДНОМУ КОДУ Г.А. Корнеев Научный руководитель А.А. Шалыто

ПОСТРОЕНИЕ МОДЕЛИ ДАННЫХ ПРОГРАММЫ ПО ИСХОДНОМУ КОДУ Г.А. Корнеев Научный руководитель А.А. Шалыто Опубликовано в научно-техническом вестнике СПбГУ ИТМО. 2006, 25. c. 102 110. ПОСТРОЕНИЕ МОДЕЛИ ДАННЫХ ПРОГРАММЫ ПО ИСХОДНОМУ КОДУ Г.А. Корнеев Научный руководитель А.А. Шалыто В работе предлагается метод

Подробнее

Ключевые слова языка С#

Ключевые слова языка С# 1 abstract, см. также 11, 55 2 as, см. также 37 Ключевые слова языка С# Модификатор abstract используется при объявлении класса, метода или свойства. Использование модификатора abstract в объявлении класса

Подробнее

Оптимизация программ

Оптимизация программ Оптимизация программ Оптимизация программы - это изменение компилируемой программы ( в основном переупорядочивание и замена операций) с целью получения более эффективной объектной программы. Используются

Подробнее

ПОСТРОЕНИЕ ЛЕКСИЧЕСКОГО И СИНТАКСИЧЕСКОГО АНАЛИЗАТОРОВ АВТОРЕФЕРАТ БАКАЛАВРСКОЙ РАБОТЫ

ПОСТРОЕНИЕ ЛЕКСИЧЕСКОГО И СИНТАКСИЧЕСКОГО АНАЛИЗАТОРОВ АВТОРЕФЕРАТ БАКАЛАВРСКОЙ РАБОТЫ Министерство образования и науки Российской Федерации ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «САРАТОВСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Подробнее

Введение в функциональное программирование

Введение в функциональное программирование 22 сентября 2015 Императивное программирование Программа это набор инструкций, изменяющих состояние системы Всё остальное (процедуры, классы и т.д.) лишь способы абстракции long factorial(long i) { long

Подробнее

(пусть адреса ячеек равны 51, F2 и 93) Машинный код:

(пусть адреса ячеек равны 51, F2 и 93) Машинный код: Языки программирования высокого уровня Пример: сложить содержимое двух разных ячеек и результат поместить в третью. (вспоминаем формат машинной команды (лекция 5)) Код Операции О п е р а н д (пусть адреса

Подробнее

Содержание. Часть I. Основы 29. Предисловие 17. Благодарности 18. Глава 1. Об этой книге 21. Глава 2. Шаблоны функций 31. Глава 3. Шаблоны классов 43

Содержание. Часть I. Основы 29. Предисловие 17. Благодарности 18. Глава 1. Об этой книге 21. Глава 2. Шаблоны функций 31. Глава 3. Шаблоны классов 43 Содержание Предисловие 17 Благодарности 18 Глава 1. Об этой книге 21 1.1. Что необходимо знать, приступая к чтению этой книги 22 1.2. Структура книги в целом 22 1.3. Как читать эту книгу 23 1.4. Некоторые

Подробнее

ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ

ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ ТЕОРИЯ И ПРАКТИКА МНОГОПОТОЧНОГО ПРОГРАММИРОВАНИЯ Тема 4 Языки программирования и многопоточность, конкурентный доступ Д.ф.-м.н., профессор А.Г. Тормасов Базовая кафедра «Теоретическая и Прикладная Информатика»,

Подробнее

1. Аннотация. 2. Цели освоения дисциплины

1. Аннотация. 2. Цели освоения дисциплины 1. Аннотация Курс направлен на формирование и развитие у студентов практических навыков программирования на Java и приобретение ими необходимого опыта для реализации проектов, связанных с вычислениями

Подробнее

ЧАСТЬ І. МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 23 Глава 1. Принципы программирования и разработки программного обеспечения 24

ЧАСТЬ І. МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 23 Глава 1. Принципы программирования и разработки программного обеспечения 24 Содержание Предисловие 13 Обращение к студентам 13 Метод изложения 14 Необходимые условия 14 Гибкость 14 Абстракция данных 15 Решение задач 16 Приложения 16 Новый и переработанный материал 16 Обзор 17

Подробнее

Языки программирования и методы трансляции

Языки программирования и методы трансляции Языки программирования и методы трансляции Типы данных Типы данных Что такое тип данных? Денотационный подход: набор значений Структурный подход: данные с определенной внутренней структурой, описанной

Подробнее

Программирование в C++ Преподаватель Колотова Людмила Павловна

Программирование в C++ Преподаватель Колотова Людмила Павловна Программирование в C++ Преподаватель Колотова Людмила Павловна 2 Содержание 7-го занятия по практике Массивы. Определение массивов. Доступ к элементам массивов. Среднее арифметическое элементов массива

Подробнее

Содержание Предисловие Глава 1. Введение в компьютерные технологии Глава 2. Среда разработки Delphi Глава 3. Планирование разработки программы

Содержание Предисловие Глава 1. Введение в компьютерные технологии Глава 2. Среда разработки Delphi Глава 3. Планирование разработки программы Содержание Предисловие 14 Глава 1. Введение в компьютерные технологии 21 Краткий экскурс в историю вычислительных устройств 22 Типы компьютеров 26 Компоненты типичного персонального компьютера 27 Двоичная

Подробнее

Как построена эта книга 14 Как пользоваться этой книгой 14 Используемые пиктограммы 15

Как построена эта книга 14 Как пользоваться этой книгой 14 Используемые пиктограммы 15 Содержание Введение 14 Как построена эта книга 14 Как пользоваться этой книгой 14 Используемые пиктограммы 15 Глава 1. Алфавит, зарезервированные слова, переменные, комментарии, константы 17 Алфавит языка

Подробнее

Задание 1. Ваша программа должна выполнять следующие действия:

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

Подробнее

1. C-cтроки 1.1. Описание и инициализация строк

1. C-cтроки 1.1. Описание и инициализация строк 1. C-cтроки В C++ имеется два типа строк: встроенный тип, унаследованный от языка C (строки данного типа мы будем называть C-строками), и класс string из стандартной библиотеки C++. Класс string появился

Подробнее

Содержание. Часть I. Погружение в С++ Глава 1. Введение и настройка среды разработки...20

Содержание. Часть I. Погружение в С++ Глава 1. Введение и настройка среды разработки...20 Содержание Часть I. Погружение в С++ Глава 1. Введение и настройка среды разработки...20 Что такое язык программирования?...20 В чем различие между C и C++?.........................................21 Обязательно

Подробнее

Зачем изучать концепции языков программирования Большая свобода в выражении мыслей Знания, необходимые для правильного выбора подходящего языка програ

Зачем изучать концепции языков программирования Большая свобода в выражении мыслей Знания, необходимые для правильного выбора подходящего языка програ Концепции языков программирования Зачем изучать концепции языков программирования Большая свобода в выражении мыслей Знания, необходимые для правильного выбора подходящего языка программирования Способность

Подробнее

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

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

Подробнее

Подпрограммы: процедуры и функции. Информатика

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

Подробнее

Лабораторная работа 3. Таблицы идентификаторов

Лабораторная работа 3. Таблицы идентификаторов Лабораторная работа 3. Таблицы идентификаторов Теоретические сведения... 1 Выбор хэш-функции... 6 Мультипликативные хэш-функции... 6 Универсальные хэш-функции... 7 Устранение коллизий... 7 Метод цепочек...

Подробнее

Языки программирования ИСТОРИЯ РАЗВИТИЯ ЧАСТЬ I

Языки программирования ИСТОРИЯ РАЗВИТИЯ ЧАСТЬ I Языки программирования ИСТОРИЯ РАЗВИТИЯ ЧАСТЬ I Предыстория Идея заранее описывать команды для последующего выполнения их машиной пришла в голову британскому изобретателю Чарлзу Бэббиджу. Начиная с 1834

Подробнее

Объявление объектов данных Типы данных Типы данных языка С Преобразование типов в языке С Типы данных языка object

Объявление объектов данных Типы данных Типы данных языка С Преобразование типов в языке С Типы данных языка object Содержание Об авторах................................................... 4 Глава 1. Введение в программирование.......................... 13 Лекция 1. Развитие языков программирования...................

Подробнее

Object Pascal. Алфавит языка. Лексическая структура языка. Ячейка. Значение. Константа. Переменная. Операторы присваивания.

Object Pascal. Алфавит языка. Лексическая структура языка. Ячейка. Значение. Константа. Переменная. Операторы присваивания. Object Pascal Алфавит языка Лексическая структура языка Ячейка Значение Константа Переменная Операторы присваивания Система типов Арифметические выражения Логические выражения Строковые выражения Object

Подробнее

Вопросы к зачету по курсу «Компьютерные технологии» уч.год, осенний семестр, ИФНиТ, направление «Физика»

Вопросы к зачету по курсу «Компьютерные технологии» уч.год, осенний семестр, ИФНиТ, направление «Физика» Вопросы к зачету по курсу «Компьютерные технологии» 2016-17 уч.год, осенний семестр, ИФНиТ, направление «Физика» 1. Базовые понятия информатики: информация, классификации знаний, информационных процессов,

Подробнее

Volume 2: Design Implementation and Optimization 3. Tcl скриптирование Перевод: Егоров А.В., 2011 г.

Volume 2: Design Implementation and Optimization 3. Tcl скриптирование Перевод: Егоров А.В., 2011 г. Основы Tcl скриптов Команды ядра Tcl поддерживают переменные, структуры контроля и процедуры. В дополнении, эти команды используются для доступа к файловой системе и сетевым разъѐмам, а также для запуска

Подробнее

Факультет компьютерных наук Кафедра вычислительных систем

Факультет компьютерных наук Кафедра вычислительных систем Факультет компьютерных наук Кафедра вычислительных систем КОНТРОЛЬНЫЕ ЗАДАНИЯ по дисциплине «Системное программное обеспечение» Тема «LR(0)-распознаватели» Цель работы: Закрепление навыков и знаний по

Подробнее

Языки программирование. Лектор Азарченков А.А.

Языки программирование. Лектор Азарченков А.А. Языки программирование Лектор Азарченков А.А. Написание программ в машинных кодах Компьютерная программа логически упорядоченная последовательность команд, предназначенных для управления компьютером. Машинный

Подробнее

Курсовая работа по дисциплине «Основы конструирования программ»

Курсовая работа по дисциплине «Основы конструирования программ» Курсовая работа по дисциплине «Основы конструирования программ» Исходные данные к работе 1. Индивидуальное задание выбирается из списка, приведенного в одноименном файле. 2. Язык программирования С++.

Подробнее

Практика программирования 3

Практика программирования 3 Практика программирования 3 Процедурное Базовые типы и операции в C++ Ветвления Кувшинов Д.Р. КМиММ УрФУ Екатеринбург 2011 Программирование как инженерная дисциплина Технология программирования Инструменты

Подробнее

ИНСТРУМЕНТЫ И СРЕДСТВА ПРОГРАММИРОВАНИЯ

ИНСТРУМЕНТЫ И СРЕДСТВА ПРОГРАММИРОВАНИЯ Министерство образования Республики Беларусь Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» Кафедра информатики А.А. Волосевич ИНСТРУМЕНТЫ И СРЕДСТВА ПРОГРАММИРОВАНИЯ

Подробнее

Метод получения функции трудоѐмкости рекурсивных алгоритмов на основе анализа порожденного дерева рекурсии

Метод получения функции трудоѐмкости рекурсивных алгоритмов на основе анализа порожденного дерева рекурсии УДК 510.52 1 Малов Д. Н., канд. техн. наук, доц., Национальный исследовательский университет Высшая школа экономики Ульянов М. В., д-р техн. наук, проф., Московский государственный университет печати,

Подробнее

Парадигмы программирования (часть 1)

Парадигмы программирования (часть 1) ... Парадигмы программирования (часть 1) Алексей Островский Физико-технический учебно-научный центр НАН Украины 28 ноября 2014 г. 1 / 32 ... Определение парадигмы Определение Парадигма программирования

Подробнее

ВВЕДЕНИЕ В VISUAL BASIC FOR APPLICATIONS

ВВЕДЕНИЕ В VISUAL BASIC FOR APPLICATIONS 2 ВВЕДЕНИЕ В VISUAL BASIC FOR APPLICATIONS Информатика 2 семестр План лекции 1. Макросы и язык VBA 2. Объектно-ориентированные аспекты VBA 3. Переменные и типы данных 4. Ветвления 5. Циклы 6. Функции 7.

Подробнее

Часть I. Подготовка инструментов 21

Часть I. Подготовка инструментов 21 Об авторе 13 Введение 14 Об этой книге 14 Как пользоваться книгой 14 Соглашения, принятые в книге 15 Что можно не читать 15 Ряд предположений 16 Структура книги 17 Часть I. Подготовка инструментов 17 Часть

Подробнее

Базовое программное обеспечение процессора NM6403

Базовое программное обеспечение процессора NM6403 Введение Базовое программное обеспечение (БПО) нейропроцессора NM6403 обеспечивает полный цикл разработки и отладки прикладных программ. БПО позволяет разрабатывать прикладные программы на языке Си++ и

Подробнее

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

Языки программирования 4. Вопросы трансляции языка Структура компилятора Исходный код Этапы анализа исходной программы Лексический анализатор Лексемы Синтаксический анализатор Дерево грам. разбора Семантический анализатор Таблица

Подробнее

Прикладное Программное Обеспечение - бакалавры 2010/2011 Лекция Библиотеки программ

Прикладное Программное Обеспечение - бакалавры 2010/2011 Лекция Библиотеки программ Библиотеки программ С точки зрения системы программирования, библиотеки программ состоят из двух основных компонентов: файл (или множество файлов) библиотеки, содержащий объектный код, файлы описаний функций,

Подробнее

Семинар 6. Наследование. Включение объектов и закрытое наследование. Множественное наследование. Шаблоны классов.

Семинар 6. Наследование. Включение объектов и закрытое наследование. Множественное наследование. Шаблоны классов. Семинар 6. Наследование. Включение объектов и закрытое наследование. Множественное наследование. Шаблоны классов. 1. Наследование и динамическое распределение памяти Пусть в базовом классе осуществляется

Подробнее

ЛАБОРАТОРНАЯ РАБОТА 4 ВВЕДЕНИЕ В АРХИТЕКТУРУ ARM

ЛАБОРАТОРНАЯ РАБОТА 4 ВВЕДЕНИЕ В АРХИТЕКТУРУ ARM ЛАБОРАТОРНАЯ РАБОТА 4 ВВЕДЕНИЕ В АРХИТЕКТУРУ ARM Цели работы 1. Знакомство с программной архитектурой ARM. 2. Анализ ассемблерного листинга программы для архитектуры ARM. 1. КРАТКОЕ ОПИСАНИЕ АРХИТЕКТУРЫ

Подробнее

Введение в функциональное программирование

Введение в функциональное программирование Введение в функциональное программирование Михаил Беляев 28 сентября 2016 1/38 Императивное программирование Программа это набор инструкций, изменяющих состояние системы Всё остальное (процедуры, классы

Подробнее