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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Транскрипт

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

2 1 Спектр языков программирования 2

3 Наибольший общий делитель Сначала программы писали так: Пример (Программа вычисления н.о.д. для x86) e ec e4 f0 e c3 e8 2a c d b c3 7e c3 39 c3 75 f6 89 1c 24 e8 6e b 5d fc c9 c3 29 d8 eb eb 90 Затем появился ассемблер.

4 Введение В языках ассемблера используются мнемонические имена, взаимно-однозначно соответствующие машинным инструкциям, и макросы. Необходимо переписывать программы для каждого нового компьютера потребность в машинно-независимом языке гг.: Fortran, Lisp, Algol Компилятор транслирует код на высокоуровневом языке в код на ассемблере или в машинный код. В большинстве случаев, код, порождаемый компилятором, эффективнее машинного кода, который реалистично написать вручную. Использование компилятора экономит труд программиста и снижает стоимость разработки и поддержки программ.

5 Почему существует так много языков программирования? Языки программирования эволюционируют. Разные языки предназначены для разных задач. Lisp: Символьные данные и сложные структуры данных C: Низкоуровневое системное программирование Prolog Логические отношения между данными Личные предпочтения.

6 Что влияет на популярность языка программирования? Выразительная сила Легкость в использовании для новичков Легкость реализации Стандартизация Открытый код Качественные компиляторы Экономические факторы, финансовая поддержка, инерция

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

8 Классификация языков программирования декларативные функциональные Lisp, Scheme, ML, Haskell логические, на основе ограничений, шаблонов Prolog, электронные таблицы, XSLT императивные «фон неймановские» C, Ada, Fortran языки сценариев Perl, Python, PHP объектно-ориентированные Smalltalk, Eiffel, Java

9 Классификация языков программирования Декларативные языки Функциональные языки используют вычислительную модель, основанную на рекурсивном определении функций Лямбда-исчисление Программа функция из одного множества в другое, определяемая в терминах более простых функций Логические языки основаны на логике предикатов Вычисление как попытка найти значения, удовлетворяющие заданным условиям с использованием поиска «от цели» по списку логических правил

10 Классификация языков программирования Императивные языки «Фон неймановские» языки наиболее популярные Вычисление при помощи операторов, меняющих значения в памяти компьютера Языки сценариев подвид «фон неймановских языков» Используются для связывания независимых компонентов Специализированные языки: bash, PHP Языки общего назначения: Perl, Python Быстрое создание прототипов; легко писать медленные программы Объектно-ориентированные языки Simula 67 и далее Вычисление как взаимодействие независимых объектов с состоянием и процедурами для его изменения

11 Наибольший общий делитель Императивные языки Чтобы вычислить н.о.д. a и b, проверить a и b на равенство. Если они равны, распечатать одно из них и остановиться. Иначе заместить большее их разностью и повторить. Пример (C) int gcd(int a, int b) { while (a!= b) { if (a > b) {a = a - b;} else {b = b - a;} } return a; }

12 Наибольший общий делитель Функциональные языки a, если a = b, н.о.д. a и b = н.о.д. b и a b, если a > b, н.о.д. a и b a, если b > a. Пример (Scheme) (define gcd (lambda (a b) (cond ((= a b) a) ((> a b) (gcd (- a b) b)) (else (gcd (- b a) a)))))

13 Наибольший общий делитель Логические языки Высказывание gcd(a, b, g) истинно если a = b = g или a > b и c : c = a b и gcd(c, b, g) истинно или a < b и c : c = b a и gcd(c, a, g) истинно Чтобы вычислить н.о.д. a и b, найти число g (и числа c), для которого можно доказать, что gcd(a, b, g) истинно. Пример (Prolog) gcd(a, B, G) :- A = B, G = A. gcd(a, B, G) :- A > B, C is A - B, gcd(c, B, G). gcd(a, B, G) :- B > A, C is B - A, gcd(c, A, G).

14 Классификация языков Границы между классами языков размыты. Многие языки включают черты, присущие различным классам. Мы будем говорить в основном об особенностях императивных языков (включая объектно-ориентированные). В следующем модуле мы отдельно остановимся на функциональных, логических, параллельных и скриптовых языках.

15 Зачем изучать языки программирования? Чтобы понимать как они устроены и как они работают Чтобы уметь выбрать наиболее подходящий язык для той или иной задачи Чтобы было проще осваивать новые языки Чтобы более эффективно их использовать

16 Зачем изучать языки программирования? Чтобы более эффективно их использовать Разбираться в относительно малоизвестных функциональных особенностях языков Выбирать между альтернативными способами записи вычислений Грамотно использовать отладчики и подобные инструменты Использовать полезные инструменты в языках, в которых они не поддерживаются в явном виде Использовать технологии, связанные с языками (парсинг, оптимизация и т.п.), везде, где они требуются

17 Компиляция в чистом виде!"#$%&'( )$% *$+,-./0$1 5#$%&'6 %4&&'6 21$ '#$%&'6 %4&&'6 Компилятор транслирует исходный код в эквивалентную программу (обычно на машинном языке) и никак не участвует в ее дальнейшем функционировании. Машинный код, записанный в файл в формате, понимаемом операционной системой, называют объектным кодом.

18 Интерпретация в чистом виде )*(+",$ +'"",$ -%(.%'//'!"#$%&%$#'#(% ),*(+",$ +'"",$ Интерпретатор сам выполняет программу. Интерпретатор реализует виртуальную машину, «машинным языком» которой является высокоуровневый язык (на котором написана интерпретируемая программа). Интерпретация допускает позднее связывание важные решения (например, о типах переменных) принимаются во время выполнения программы.

19 Гибридная реализация!"#$%&'( )$% *+,&"-./$+ 0+$1234/$5&,. 6+$7+,11, 8#$%&'2 %,&&'2 89+/4,-:&,. 1,;9&, 8'#$%&'2 %,&&'2

20 Библиотечные функции и компоновка!"#$%&'( )$% *$+,-./0$1 23,$.&4/,1$ $038&'3 9:&);-- *$+,$&$<=-) >1$514++4

21 Ассемблирование после компиляции!"#$%&'( )$% *$+,-./0$1 *$% &2 /3')4 2"" "" $812++2

22 Препроцессор C!"#$%&'( )$% *+,-+$.,""$+ /$%010.0+$23&&'( 0"#$%&'( )$% 4$5-0678$+ Препроцессор удаляет комментарии, раскрывает макросы, а также удаляет фрагменты кода, позволяя осуществить условную компиляцию. 4$% &3 79'), 3"",5:6,+3

23 Трансляция исходного кода в код на другом языке программирования C++!"#$%&'( )$% *+,-+$.,""$+ 4$% &3 79'), 3"",5:6,+3 /$%010.0+$23&&'( 0"#$%&'( )$% 4$5-0678$+ C 4$5-0678$+ C++ 4$% &3 C

24 Раскрутка компилятора Bootstrapping Многие компиляторы написаны на языке, который они компилируют. Как компилируют такие компиляторы? Пример (Компилятор для Java) Используя простое подмножество C написать компилятор для простого подмножества Java. Вручную перевести код компилятора с C на выбранное подмножество Java. Дописать компилятор для большего подмножества Java. Скомпилировать код компилятора на компиляторе начального подмножества Java. И т.д.

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

26 Компиляция на лету Трансляция байт-кода Java в машинный код перед выполнением программы

27 Компиляция Поток символов Лексический анализ сканер Поток грамматических лексем (минимальных значимых единиц программы) Синтаксический анализ парсер Дерево синтаксического разбора

28 Компиляция Дерево синтаксического разбора Семантический анализ и порождение промежуточного кода Абстрактное синтаксическое дерево или иное промежуточное представление кода Машинно-независимая оптимизация кода Модифицированное промежуточное представление кода

29 Компиляция Модифицированное промежуточное представление кода Порождение кода Код (например, на ассемблере) Машинно-зависимая оптимизация кода Модифицированный код (например, на ассемблере)

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

Лекция 15. Модели программирования. Идея Флинна

Лекция 15. Модели программирования. Идея Флинна Конспекты лекций по курсу «Введение в информатику и системы программирования», 1 семестр С.А. Немнюгин, направление «Прикладные математика и физика») 1 Лекция 15 Модели программирования Идея Флинна SISD-архитектура

Подробнее

Глава 1. Введение в программирование

Глава 1. Введение в программирование Лекция 1 Развитие языков программирования Глава 1. Введение в программирование Лекция 1. Развитие языков программирования Первые языки программирования В пятидесятые годы XX века с появлением компьютеров

Подробнее

Компиляция программ

Компиляция программ 1 План лекции : 1. Введение. Трансляторы и интерпретаторы. 2. Этапы трансляции программ. 3. Транслятор gcc. 4. Утилита make. 5. Пример компиляции проекта. Литература по лекции Примечания и комментарии

Подробнее

Для подготовки по данному вопросу можно рекомендовать следующую работу:

Для подготовки по данному вопросу можно рекомендовать следующую работу: Языки программирования. Классификация (императивные, декларативные, параллельные) и примеры. Компиляторы и интерпретаторы. Объектно-ориентированное программирование Для подготовки по данному вопросу можно

Подробнее

Операционная система Linux. Лекция 11

Операционная система Linux. Лекция 11 Операционная система Linux Лекция 11 GNU Compiler Collection (gcc) GNU Compiler Collection - набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным

Подробнее

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

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

Подробнее

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

Концепции языков программирования Лекция 1. Вводная Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Беляев Михаил Владимирович, асп. История языков начало Машинные коды Assembler(~1950) Fortran (1954-1957) императивный язык

Подробнее

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

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

Подробнее

Стили программирования

Стили программирования Стили программирования Одним из важнейших признаков классификации языков программирования является принадлежность их к одному из стилей, основными из которых являются следующие: 1. процедурный; 2. функциональный;

Подробнее

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Выполнила: ученица 10А класса МОУ СОШ 53 г. Саратова Юлия Юдаева Язык программирования формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

Программирование в. Приборостроении Биотехнических системах

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

Подробнее

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

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

Подробнее

Алгоритмы и программы

Алгоритмы и программы Кафедра информационных систем и технологий http://edu.msiu.ru Е.А. Роганов Алгоритмы и программы Алгоритмы и программы 1 / 6 Алгоритм описание последовательности действий, достаточно определённое для того,

Подробнее

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Разработчик Юн Ф.А., канд. тех. наук. Рецензент Артюшенко В.М., д-р тех. наук, проф. I Организационно-методический раздел 1 Цель дисциплины Цель дисциплины

Подробнее

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

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

Подробнее

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

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

Подробнее

Федеральное государственное автономное образовательное учреждение высшего профессионального образования «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Федеральное государственное автономное образовательное учреждение высшего профессионального образования «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Федеральное государственное автономное образовательное учреждение высшего профессионального образования «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Институт математики и фундаментальной информатики Базовая кафедра

Подробнее

Элементы теории трансляции

Элементы теории трансляции 1 Элементы теории трансляции Транслятор позволяет преобразовать программу, написанную на ЯП, отличном от машинного языка, к виду, допускающему выполнение на ЭВМ. Компилятор на вход получает программу на

Подробнее

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

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

Подробнее

Программирование и основы алгоритмизации. К.т.н., доцент Гаврилов Андрей Владимирович V-241

Программирование и основы алгоритмизации. К.т.н., доцент Гаврилов Андрей Владимирович   V-241 Программирование и основы алгоритмизации К.т.н., доцент Гаврилов Андрей Владимирович Email: andr_gavrilov@yahoo.com V-241 Цели курса Дальнейшее изучение программирования на языке С Технологии программирования

Подробнее

Задание #1 Вопрос: Массивом называется... Задание #2 Вопрос: Укажите в каком варианте параметры функции являются формальными

Задание #1 Вопрос: Массивом называется... Задание #2 Вопрос: Укажите в каком варианте параметры функции являются формальными Тест для зачета по дисциплине "Языки программирования" Автор: Бугаков П.Ю. Инструкция к тесту: Тест содержит 38 вопросов и расчитан на выполнение в течение 90 минут. Если вы затрудняетесь дать правильный

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

План курса. Литература.

План курса. Литература. План курса. Литература. Язык программирования C Б.В. Керниган, Д.М. Ричи. "Язык программирования С" Язык программирования C++ Бьерн Страуструп "Язык программирования С++" m Практические занятия Компьютерный

Подробнее

Разработка алгоритма оптимизации синтеза фрагментированных программ и его реализация для системы программирования LuNA

Разработка алгоритма оптимизации синтеза фрагментированных программ и его реализация для системы программирования LuNA Разработка алгоритма оптимизации синтеза фрагментированных программ и его реализация для системы программирования LuNA Софронов Иван Викторович, НГУ ФИТ гр.15221 Руководитель Малышкин Виктор Эммануилович,

Подробнее

ГЛАВА 3. Лексические анализаторы. Лексические анализаторы

ГЛАВА 3. Лексические анализаторы. Лексические анализаторы ГЛАВА 3. Лексические анализаторы ГЛАВА 3 Лексические анализаторы Лексические анализаторы (сканеры). Принципы построения сканеров Назначение лексического анализатора Прежде чем перейти к рассмотрению лексических

Подробнее

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ ВЕБ-ПРИЛОЖЕНИЙ УДК 004.432.2 Лукин И.К., студент магистратуры 2 курс, направление подготовки «Информационные системы и технологии» Поволжский Государственный Университет Телекоммуникаций и Информатики, Россия, г. Самара

Подробнее

Программирование на языках высокого уровня

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

Подробнее

Основы программирования. Аксенов Сергей Алексеевич

Основы программирования. Аксенов Сергей Алексеевич Основы программирования Аксенов Сергей Алексеевич Литература Харви Дейтл, Пол Дейтл, Как программировать на С++. Москва : Бином, 2003, 1151 с. Айвор Хортон, Visual C++ 2005 базовый курс. Москва : Диалектика,

Подробнее

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

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

Подробнее

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

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

Подробнее

Трансляция и выполнение программ

Трансляция и выполнение программ Глава 2 Трансляция и выполнение программ 2.1. Трансляция и интерпретация Как было показано в предыдущей теме, решение одной и той же задачи может быть записано на различных языках программирования. Так

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 4

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 4 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016 Лекция 4 1 Нормальные алгоритмы Маркова Определение нормального алгоритма Маркова (НАМ) V алфавит основных символов V алфавит маркеров σ, σ

Подробнее

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

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

Подробнее

Тема 6. Алгоритмы и языки программирования

Тема 6. Алгоритмы и языки программирования Тема 6. Алгоритмы и языки программирования Алгоритмы основные понятия Существует несколько определений алгоритма, начиная с бытового, как набора предписаний, и заканчивая формальными определениями на основе

Подробнее

3. Основы компиляторов

3. Основы компиляторов 3. Основы компиляторов Основные понятия. Компиляторы и интерпретаторы. Входной язык, целевой язык, язык реализации. T-диаграммы. Прямой компилятор. Раскрутка. Кросстрансляторы. Виртуальные машины. Компиляция

Подробнее

Министерство общего и профессионального образования Российской Федерации Новосибирский государственный технический университет

Министерство общего и профессионального образования Российской Федерации Новосибирский государственный технический университет Министерство общего и профессионального образования Российской Федерации Новосибирский государственный технический университет Р А Б О Ч А Я П Р О Г Р А М М А дисциплины «Теория формальных языков» Направление

Подробнее

Операционная система Linux. Лекция 12

Операционная система Linux. Лекция 12 Операционная система Linux Лекция 12 1 Компиляция нескольких файлов Раздельная компиляция трансляция частей программы по отдельности с последующим объединением их компоновщиком в единый загрузочный модуль.

Подробнее

Лекция 9. Терновой Максим Юрьевич к.т.н., с.н.с., доцент кафедры информационнотелекоммуникационных

Лекция 9. Терновой Максим Юрьевич к.т.н., с.н.с., доцент кафедры информационнотелекоммуникационных Технологии программирования Зима-Весна Лекция 9 Терновой Максим Юрьевич к.т.н., с.н.с., доцент кафедры информационнотелекоммуникационных сетей Вопросы, рассматриваемые на лекции 1. Частные (private) элементы

Подробнее

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

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

Подробнее

Демонстрационный вариант теста по информатике для студентов специальности "Городской кадастр"

Демонстрационный вариант теста по информатике для студентов специальности Городской кадастр Демонстрационный вариант теста по информатике для студентов специальности "Городской кадастр" В каждом задании необходимо выбрать один вариант ответа. ЗАДАНИЕ N 1 Сигналы, зарегистрированные на материальном

Подробнее

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Кемеровский государственный университет»

Подробнее

ЯЗЫКИ ПРОГРАММИРОВАНИЯ И МЕТОДЫ ТРАНСЛЯЦИИ СЕНТЯБРЬ 2005

ЯЗЫКИ ПРОГРАММИРОВАНИЯ И МЕТОДЫ ТРАНСЛЯЦИИ СЕНТЯБРЬ 2005 Объектно-ориентированное программирование Язык программирования Си++ Язык программирования Оберон Язык программирования Ява Язык программирования Си# Примеры использования объектной технологии Языки-концепции

Подробнее

Практический материал дисциплины ориентирован на языки программирования Паскаль и объектно-ориентированный язык программирования Delphi.

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

Подробнее

РЕАЛИЗАЦИЯ ЛИНГВИСТИЧЕСКОГО ОБЕСПЕЧЕНИЯ АВТОМАТИЗАЦИИ РЕШЕНИЯ ЗАДАЧ УПРАВЛЕНИЯ: ЯЗЫК ГАММА

РЕАЛИЗАЦИЯ ЛИНГВИСТИЧЕСКОГО ОБЕСПЕЧЕНИЯ АВТОМАТИЗАЦИИ РЕШЕНИЯ ЗАДАЧ УПРАВЛЕНИЯ: ЯЗЫК ГАММА РЕАЛИЗАЦИЯ ЛИНГВИСТИЧЕСКОГО ОБЕСПЕЧЕНИЯ АВТОМАТИЗАЦИИ РЕШЕНИЯ ЗАДАЧ УПРАВЛЕНИЯ: ЯЗЫК ГАММА М.Ф. Степанов 1, А.М. Степанов 2, М.А. Пахомов 1, О.Н. Пименова 1, Л.С. Михайлова 3 1 Саратовский государственный

Подробнее

ФОРМАЛЬНЫЕ ЯЗЫКИ И ТРАНСЛЯТОРЫ

ФОРМАЛЬНЫЕ ЯЗЫКИ И ТРАНСЛЯТОРЫ Федеральное агентство по образованию Сибирский федеральный университет Легалов А.И., Швец Д.А., Легалов И.А. ФОРМАЛЬНЫЕ ЯЗЫКИ И ТРАНСЛЯТОРЫ Учебное пособие Красноярск 2007 2 УДК 681.3.06 ББК Рецензенты:

Подробнее

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

Введение в функциональное программирование. Введение в функциональное программирование. Лекция 1. Специальности : 230105, 010501 Концепция функционального программирования. Функциональным называется программирование при помощи функций в математическом

Подробнее

Занятие 18. Алгоритм Евклида

Занятие 18. Алгоритм Евклида Занятие 18. Алгоритм Евклида В занятии 5 мы уже касались этого вопроса. Теперь рассмотрим алгоритм Евклида для нахождения наибольшего общего делителя двух натуральных чисел более подробно. Из математики

Подробнее

Основы математической логики и логического программирования. ЛЕКТОР: В.А. Захаров

Основы математической логики и логического программирования. ЛЕКТОР: В.А. Захаров Основы математической логики и логического программирования ЛЕКТОР: В.А. Захаров Лекция 20. Правильные программы. Императивные программы. Задача верификации программ. Логика Хоара. Автоматическая проверка

Подробнее

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

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

Подробнее

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

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

Подробнее

Факультет информационных технологий РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ. «Методы трансляции и компиляции»

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

Подробнее

Вид профессиональной деятельности: проектно-технологическая; монтажно-наладочная. Профиль подготовки: Информационные системы и технологии

Вид профессиональной деятельности: проектно-технологическая; монтажно-наладочная. Профиль подготовки: Информационные системы и технологии Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Казанский национальный исследовательский технический

Подробнее

Приложение (обязательное) ФОС оформлен в виде отдельного файла и является неотъемлемой и обязательной составляющей рабочей программы дисциплины.

Приложение (обязательное) ФОС оформлен в виде отдельного файла и является неотъемлемой и обязательной составляющей рабочей программы дисциплины. Приложение (обязательное) Фонд оценочных средств по дисциплине "Языки и системы программирования. Технология разработки программного обеспечения " ФОС оформлен в виде отдельного файла и является неотъемлемой

Подробнее

Содержание. Часть 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. Программирование

Подробнее

«Языки и методы программирования» МГУ им. Н.П. Огарева, 2017 год (36 часов лекций + экзамен)

«Языки и методы программирования» МГУ им. Н.П. Огарева, 2017 год (36 часов лекций + экзамен) «Языки и методы программирования» МГУ им. Н.П. Огарева, 2017 год (36 часов лекций + экзамен) Андрей Владимирович Попов доцент кафедры фундаментальной информатики http://andpop.ru С какими языками вы уже

Подробнее

1. Общая информация о дисциплине 1.1. Название дисциплины: Системное программное обеспечение

1. Общая информация о дисциплине 1.1. Название дисциплины: Системное программное обеспечение 1. Общая информация о дисциплине 1.1. Название дисциплины: Системное программное обеспечение 1.2. Трудоѐмкость дисциплины 1.2.1. Трудоѐмкость дисциплины по учебному плану очной формы обучения: 180 часов

Подробнее

Ф О Н Д КОНТРОЛЬНЫХ ЗАДАНИЙ ПО ДИСЦИПЛИНЕ СД.05 СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Ф О Н Д КОНТРОЛЬНЫХ ЗАДАНИЙ ПО ДИСЦИПЛИНЕ СД.05 СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СОГЛАСОВАНО Председатель УМК по специальности 230101 Сюзев В.В. 200 г. УТВЕРЖДАЮ И.О. Ректора Елисеев Б.П. 200 г Ф О Н Д КОНТРОЛЬНЫХ ЗАДАНИЙ ПО ДИСЦИПЛИНЕ СД.05 СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ (шифр

Подробнее

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

Основы алгоритмизации и программирования План лекции Основы алгоритмизации и программирования План лекции 1. Основные понятия.... 2 1.1. Классификация программного обеспечения.... 2 1.2. Цикл жизни программного обеспечения.... 2 1.3. Этапы создания программ....

Подробнее

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Учебно-методическое объединение по образованию в области информатики и радиоэлектроники

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Учебно-методическое объединение по образованию в области информатики и радиоэлектроники МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Учебно-методическое объединение по образованию в области информатики и радиоэлектроники УТВЕРЖДАЮ Первый заместитель Министра образования Республики Беларусь

Подробнее

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

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

Подробнее

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

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

Подробнее

#define

#define <name> <text> 1 Занятие 9 1.1 Препроцессор Препроцессирование это специальный просмотр исходного файла на языке Си, в ходе которого выполняются специальные директивы (директивы препроцессора) и производится макроподстановка

Подробнее

Рабочая программа дисциплины Теория языков и трансляций

Рабочая программа дисциплины Теория языков и трансляций МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Кемеровский государственный университет» Математический

Подробнее

факультет математический

факультет математический МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Кемеровский государственный университет» КАФЕДРА

Подробнее

Программа дисциплины

Программа дисциплины ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования «Уральский государственный университет им. А.М. Горького» ИОНЦ «Информационная безопасность»

Подробнее

Интерпретируемость Вычислимость лекция 9

Интерпретируемость Вычислимость лекция 9 Интерпретируемость Вычислимость лекция 9 Лев Дмитриевич Беклемишев http://lpcs.math.msu.su/vml2008 lbekl@yandex.ru 3.04.2008 Интерпретации Опр. Модель (M; Ω) интерпретируема в (N; Σ), если её носитель

Подробнее

ОСНОВНЫЕ ПОНЯТИЯ 1.1. КЛАССИФИКАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

ОСНОВНЫЕ ПОНЯТИЯ 1.1. КЛАССИФИКАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ОСНОВНЫЕ ПОНЯТИЯ 1.1. КЛАССИФИКАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Программирование - в широком смысле представляет собой все технические операции, необходимые для создания программы, включая анализ требований

Подробнее

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

Языки сценариев. Языки программирования и методы трансляции Языки программирования и методы трансляции Языки сценариев Языки сценариев Предшественники современных языков сценариев Интерпретаторы команд или «оболочки» для пакетных вычислений и вычислений в «терминале»

Подробнее

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

Разработка моделей и средств визуального фрагментированного программирования численных алгоритмов Новосибирский Государственный Университет Факультет информационных технологий Высокопроизводительные вычислительные системы Разработка моделей и средств визуального фрагментированного программирования

Подробнее

Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники»

Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» УТВЕРЖДАЮ Проректор по учебной работе и менеджменту качества Е.Н.Живицкая «31» мая 2016 г. Регистрационный

Подробнее

Языки программирования и их история. Авторы: Илларионов Сергей Владимирович Перлова Наталья Васильевна

Языки программирования и их история. Авторы: Илларионов Сергей Владимирович Перлова Наталья Васильевна Языки программирования и их история Авторы: Илларионов Сергей Владимирович Перлова Наталья Васильевна Сергиев Посад 2013 2 Цели доклада Многие современные люди активно пользуются компьютером, работают

Подробнее

Представление знаний в информационных системах

Представление знаний в информационных системах Федеральное агентство связи федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики»

Подробнее

2 Основы алгоритмизации

2 Основы алгоритмизации 2 Основы алгоритмизации 2.1 Основные определения и понятия 2.1.1 Алгоритм и алгоритмизация Понятие алгоритма такое же основополагающее для информатики, как и понятие информации. Термин «алгоритм» обязан

Подробнее

Содержание. Часть I. Искусственный интеллект: его истоки и проблемы 27. Часть II. Искусственный интеллект как представление и поиск 57

Содержание. Часть I. Искусственный интеллект: его истоки и проблемы 27. Часть II. Искусственный интеллект как представление и поиск 57 Содержание Предисловие 19 Добро пожаловать в четвертое издание! 19 Что нового в этом издании 21 Содержание книги 22 Использование книги 24 Дополнительный материал, доступный через Internet 25 Благодарности

Подробнее

СИСТЕМОЛОГИЯ ЯЗЫКОВ И МЕТОДОЛОГИЙ ПРОГРАММИРОВАНИЯ

СИСТЕМОЛОГИЯ ЯЗЫКОВ И МЕТОДОЛОГИЙ ПРОГРАММИРОВАНИЯ справка по учебнику должны быть полной, обеспечивающей комфортную работу конечного пользователя. Там, где это возможно, необходимо использовать мультимедийные возможности вычислительной техники. Наличие

Подробнее

ЛЕКЦИЯ 5. УСЛОВНЫЕ ОПЕРАТОРЫ (ОПЕРАТОРЫ ВЕТВЛЕНИЯ)

ЛЕКЦИЯ 5. УСЛОВНЫЕ ОПЕРАТОРЫ (ОПЕРАТОРЫ ВЕТВЛЕНИЯ) ЛЕКЦИЯ 5. УСЛОВНЫЕ ОПЕРАТОРЫ (ОПЕРАТОРЫ ВЕТВЛЕНИЯ) Логические операции... 1 Операции сравнения... 3 Приоритет операций... 5 Инструкция if - else... 5 Синтаксис инструкции if:... 5 Тернарный оператор?:...

Подробнее

времени выполнения) компилирует ее содержимое в машинный код

времени выполнения) компилирует ее содержимое в машинный код 1. Объектно-ориентированное программирование 1 1.1. Введение в.net и С# Microsoft.NET это платформа для разработки прикладных программ, основанная и ориентированная на Интернет..NET основывается на двух

Подробнее

Б И Л Е Т Ассемблер NASM: вычисление выражений во время ассемблирования; критические выражения 2. Система регистров процессора i386

Б И Л Е Т Ассемблер NASM: вычисление выражений во время ассемблирования; критические выражения 2. Система регистров процессора i386 Б И Л Е Т 1 1. Ассемблер NASM: вычисление выражений во время ассемблирования; критические выражения 2. Система регистров процессора i386 Б И Л Е Т 2 1. Однострочные макросы ассемблера NASM, «ленивые» и

Подробнее

Современные технологии программирования (часть 2)

Современные технологии программирования (часть 2) Гуляев Г.М. Современные технологии программирования (часть 2) Лекция 3. Функциональное программирование Курс лекций для студентов АлтГТУ LOGO Императивное(процедурное) программирование Обычная программа,

Подробнее

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

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

Подробнее

Лекция 2. Синтаксис языка PHP

Лекция 2. Синтаксис языка PHP Лекция 2. Синтаксис языка PHP PHP и HTML-текст Начав писать PHP-код, вы будете работать с самыми обычными текстовыми файлами, содержащими код PHP и HTML. HTML это простой язык разметки, позволяющий определить,

Подробнее

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

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

Подробнее

Лекция 2. Основные типы данных

Лекция 2. Основные типы данных Лекция 2 Рыбалка С.А., Шкатова Г.И. Лекции по C++ Основные типы данных Основным средством хранения данных, обрабатываемых программой, являются ячейки памяти. Вся память компьютера является однородной и

Подробнее

Онтология по истории языков программирования hopl.murdoch.edu.au (ок ЯП)

Онтология по истории языков программирования hopl.murdoch.edu.au (ок ЯП) Парадигмы программирования Онтология по истории языков программирования hopl.murdoch.edu.au (ок. 2500 ЯП) Novosibirsk. For the BESM-6, M-220 and Minsk-22. Also written SYGMA (but really Cyrillic) for SYmbolic

Подробнее

Министерство образования и науки РФ Рыбинская государственная авиационная технологическая академия имени П.А. Соловьева РАБОЧАЯ ПРОГРАММА

Министерство образования и науки РФ Рыбинская государственная авиационная технологическая академия имени П.А. Соловьева РАБОЧАЯ ПРОГРАММА Министерство образования и науки РФ Рыбинская государственная авиационная технологическая академия имени П.А. Соловьева «УТВЕРЖДАЮ» Декан факультета РЭИ Дворсон А.И. (подпись) (фамилия и.о.) 20 г. РАБОЧАЯ

Подробнее

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

Язык программирования С ПРОГРАММА Язык программирования С 2015г. Пояснительная записка Большая часть действительно серьёзных и сложных программ в настоящее время пишется именно на С и С++ (СИ). В курсе по С (СИ) обращается особое

Подробнее

Язык программирования Cи. Семинар 5. Коллоквиум, методика проведения и типовые вопросы.

Язык программирования Cи. Семинар 5. Коллоквиум, методика проведения и типовые вопросы. Язык программирования Cи Бикулов Д.А., Иваницкая Н.В., Иванов А.П. Семинар 5. Коллоквиум, методика проведения и типовые вопросы. Коллоквиум проводится на семинарском занятии в середине семестра (обычно

Подробнее

Классификация языков и грамматик 30

Классификация языков и грамматик 30 Содержание Предисловие 11 Введение 13 Глава 1. Формальные языки и грамматики 15 Языки и цепочки символов. Способы задания языков 15 Цепочки символов. Операции над цепочками символов 15 Понятие языка. Формальное

Подробнее

«Ленивый» анализ исходного кода на языках С и С++

«Ленивый» анализ исходного кода на языках С и С++ «Ленивый» анализ исходного кода на языках С и С++ Савицкий В.О., Сидоров Д.В. ssavitsky@ispras.ru, sidorov@ispras.ru Аннотация. В статье описывается метод построения синтаксического анализатора, позволяющий

Подробнее

Рабочая программа дисциплины Языки программирования. Направление подготовки Фундаментальная информатика и информационные технологии

Рабочая программа дисциплины Языки программирования. Направление подготовки Фундаментальная информатика и информационные технологии МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Кемеровский государственный университет» Математический

Подробнее

Курс «Язык С++» Симуни Михаил Лазаревич. msimuni.wikidot.com/cpp группа курс "Язык С++" (мат-мех 17)

Курс «Язык С++» Симуни Михаил Лазаревич. msimuni.wikidot.com/cpp группа курс Язык С++ (мат-мех 17) Язык С++ 1 Курс «Язык С++» Симуни Михаил Лазаревич msimuni.wikidot.com/cpp группа курс "Язык С++" (мат-мех 17) simuni@mail.ru 2 Какие темы будут в курсе? Простые вещи указатели, функции, классы, наследование,

Подробнее