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

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

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

Компиляция программ 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. функциональный;

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

Лекция 2 Понятие обработки информации

Лекция 2 Понятие обработки информации Лекция 2 Понятие обработки информации Цель лекции: 1. Сформировать информационно-наглядное представление о процедурах обработки информации. 2. Дать характеристику технологиям программных средств обработки

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Алгоритмизация и программирование Программирование на С/С++ (ч.1 - основы) Беркунский Е.Ю., кафедра ИУСТ, НУК eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Компьютеры для чего? Компьютер это универсальный

Подробнее

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

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

Подробнее

Фонд оценочных средств для проведения промежуточной аттестации обучающихся по дисциплине

Фонд оценочных средств для проведения промежуточной аттестации обучающихся по дисциплине Общие сведения 1. Кафедра Фонд оценочных средств для проведения промежуточной аттестации обучающихся по дисциплине 2. Направление подготовки 3. Дисциплина 4. Тип заданий 5. Количество этапов формирования

Подробнее

Лекция. Системы и языки программирования 1. Языки программирования: их уровни и поколения. 2. Назначение и возможности системы программирования VB

Лекция. Системы и языки программирования 1. Языки программирования: их уровни и поколения. 2. Назначение и возможности системы программирования VB Лекция. Системы и языки программирования 1. Языки программирования: их уровни и поколения. 2. Назначение и возможности системы программирования VB 1 Вопрос 1. Языки программирования: их уровни и поколения.

Подробнее

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

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

Подробнее

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

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

Подробнее

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

#define <name> <text>

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

Выбор языка программирования Выбор языка программирования Язык программирования, на котором будет реализована система, заслуживает большого внимания, так как вы будете погружены в него с начала конструирования программы до самого

Подробнее

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

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

Подробнее

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

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

Подробнее