Информатика и ИКТ_лекция 18 лицей.pptx
- Количество слайдов: 25
1 Введение в программирование Тема 18
2 Уровни языков программирования Программа – алгоритм, написанный на языке, понятном компьютеру. Язык программирования – способ записи программ решения различных задач на ЭВМ в понятной для компьютера форме. Процессор компьютера понимает только язык машинных команд (ЯМК) – это «родной» язык ЭВМ. Для программирования на современных ЭВМ используются системы программирования (СП). (Все ПО компьютера делится на системное ПО, прикладное ПО и системы программирования). СП предназначены для создания программ управления компьютером, т. е. позволяют исполнять на ЭВМ программы, написанные на языках более высокого уровня, чем ЯМК. Понятие уровня языка связано со степенью его удаленности от ЯМК (языка процессора ЭВМ) и приближенности к естественному человеческому языку, к формальному языку предметной области. Чем выше уровень, тем дальше от ЭВМ и ближе к человеку.
3 Уровни языков программирования ЯМК – язык самого низкого уровня, данные обозначались их адресами в памяти машины, а выполняемые операции – числовыми кодами. Программист сам распределял память ЭВМ под команды и данные. Первые языки, отличные от ЯМК (на машинах первого поколения) назывались Автокодами (Ассемблерами – начиная с машин третьего поколения). Автокод – машинно-ориентированный язык символического программирования. 1 команда на Автокоде = 1 машинная команда. Данные обозначаются как с математике, команды – мнемонически. На Ассемблере сейчас работают только системные программисты. Большинство программистов работают на ЯПВУ – языках программирования высокого уровня. Это машинно-независимые языки. Одна и та же программа может быть выполнена на ЭВМ различных типов, оснащенных соответствующим транслятором. Команда на ЯПВУ ближе к традиционной математической форме.
4 Уровни языков программирования Естественный язык, язык математики ЯПВУ Автокод - Ассемблер Язык машинных команд процессор Пример записи одной и той же команды сложения. ЯПВУ (Паскаль) С: = А + В Автокод ADD А, В, С ЯМК 01 24 28 2 С
5 Трансляция Процессор компьютера «понимает» только ЯМК, человеку удобнее работать на ЯПВУ : нужен переводчик! Программы-переводчики с Автокода и любого ЯПВУ на ЯМК называются трансляторами, а процесс перевода – трансляцией. Транслятор – обязательный элемент любой СП. Кроме транслятора СП может включать в себя текстовый редактор, отладчик, системы обслуживания программных библиотек, средства организации дружественного интерфейса с пользователем, справочную систему Язык программирования, с которым работает СП, называется ее входным языком. СП именуются по названию своего входного языка. Реализовать тот или иной язык программирования на ЭВМ – это значит создать транслятор с этого языка для данной ЭВМ.
6 Трансляция Существуют два принципиально различных способа трансляции: • Компиляция (аналог полного предварительного перевода) • Интерпретация (аналог синхронного перевода). Транслятор, работающий по принципу компиляции, называется компилятором, по принципу интерпретации – интерпретатором. При компиляции в память ЭВМ загружается программа-компилятор, воспринимающий текст программы на ЯПВУ как исходную информацию. Компилятор производит синтаксический контроль программы и выводит диагностические сообщения при обнаружении ошибок. Если ошибок нет, то результатом компиляции является программа на ЯМК и компилятор удаляется из оперативной памяти. Компиляция с Автокода-Ассемблера много проще и имеет специальное название – ассемблирование. Интерпретатор находится во внутренней памяти в течение всего времени работы программы, «читает» очередной оператор,
Трансляция 7 Выполнение программы на ЯПВУ с использованием компилятора Текст программы на ЯПВУ КОМПИЛЯТОР Исходные данные компиляция Выполнение программы разбивается на 2 этапа: трансляцию и выполнение. Откомпилированная программа выполняется быстрее, поэтому компиляторы используются в СП на Паскале, Си, Программа на ЯМК Результаты
Трансляция 8 Выполнение программы на ЯПВУ с использованием интерпретатора Текст программы на ЯПВУ Выполнение программы в 1 этап. Интерпретаторы используются в СП на Бейсике Интерпретатор Результаты Исходные данные
9 История развития языков программирования Машинный язык (computing language) – 40 -50 -е годы XX века. Программы – последовательности 0 и 1, машиннозависимые. Ассемблер (assembly language) – начало 50 -х годов XX века. Программы – из операторов, машинно-зависимые.
1 0 История развития языков программирования Первые ЯПВУ (high-level language) – начало 50 -х годов XX века. Программы – из операторов, машинно-независимые , использова-ние универсальной компьютерной логики, не привязаны к типу ЭВМ. Каждый язык – свой компилятор, загружаемый в ОП. FORTRAN (Formula translator) – для научн. и технич. расчетов COBOL (Common Business-Oriented Language) – стандартный язык для делового применения (для коммерческих приложений), BASIC (Beginer’s All-Purpos Symbolic Instruction Code) 1965 г. универсальный язык символьных инструкций для начинающих
1 1 История развития языков программирования Алгоритмические языки программирования – начало 80 -х годов XX века. Структурное программирование. PL/1 (ПЛ-1) – Program Language One Pascal (Паскаль) (создан Ник. Виртом в 1971 г. ) – алгоритмический язык, позволяет легко кодировать основные алгоритмические структуры C (Си) – (создан Денисом Ритчи в 1972 г. ) – позволяющий создавать быстро и эффективно выполняющийся программный код Языки «искусственного интеллекта» ЛИСП (1965 г. ) – моделирование интеллектуальной деятельности человека Пролог (1972 г. ) – в формальном виде описываются различные утверждения, логику рассуждений
1 2 История развития языков программирования Языки объектно-ориентированного программирования – 90 -е годы XX века. В основе этих языков – программные объекты, которые объединяют данные и методы их обработки. Сохраняют алгоритмический стиль программирования. Для этих языков разработаны интегрированные среды разработки, позволяющие визуально конструировать графический интерфейс приложений C ++ прямой потомок языка С Object Pascal после создания интегрированной среды разработки СП стала называться Delphi Visual Basic создан на основе QBasic для разработки приложений с графическим интерфейсом в среде ОС Windows
1 3 История развития языков программирования Языки программирования для компьютерных сетей – 90 -е годы XX века. В связи с бурным развитием Интернета были созданы языки, обеспечивающие межплатформен-ную совместимость. На подключенных к Интернету компьютерах с разными ОС могли выполняться одни и те же программы. Исходная программа на таких языках компилируется в промежуточный код, который исполняется на компьютере встроенной в браузер виртуальной машиной: Java – полноценный объектно-ориентированный язык, разработан для создания сетевого ПО Java. Script – язык сценариев Web-страниц
1 4 История развития языков программирования Языки программирования на платформе. NET. Интегрированная система программирования Visual Studio. NET на платформе. NET Framework. Эта платформа предоставляет возможность создавать приложения в различных системах объектноориентированного программирования, в которых для создания програм-много кода используются объектно -ориентированные языки программирования: Visual Basic. NET Visual C # – на основе С++ и Java Visual J # – на основе Java и Java. Script
1 5 Структура и способы описания ЯПВУ Во всяком языке программирования определены способы организации данных и способы организации действий над данными. Понятие «элементы языка» включают алфавит, лексемы и другие изобразительные средства языка. Для изучения языка надо знать: • Алфавит (множество символов) • Синтаксис (правописание слов и правила записи предложений) • Семантику (смысловое содержание конструкций)
1 6 Структура и способы описания ЯПВУ
1 7 Введение в язык Си и Си++ • 1972 г. – создание языка Си Деннисом Ритчи (сотрудником фирмы Bell Laboratories) • 1983 г. – разработано расширение языка Си – Си++ • «Си с классами» Бьерном Строуструпом (сотрудником фирмы Bell Laboratories) • 2003 г. – объектно-ориентированный Visual C#
1 8 Структура программы на Си и Си++ • Общая структура программы директивы_препроцессора определение_функции_1 определение_функции_2 ……………. определение_функции_N • Простейшая программа (содержит только 1 функцию – главную, с именем main) директивы_препроцессора void main () { определения_объектов; исполняемые_операторы; }
1 9 Примеры программ на Си /*Пример программы на Си/Си++ */ #include
2 0 Этапы работы с программой на Си++ в СП Текстовый редактор Исходный текст программы на Си++ (файл example. cpp) Препроцессор Включаемые файлы *. h Полный текст программы на Си++ (файл example. cpp) Компилятор Объектный код программы (файл example. obj) Компоновщик исполняемая программа (файл example. exe) Библиотечные файлы
Элементы языка Си++ • Алфавит Латинские буквы Цифры Специальные символы • Комментарии /* Это комментарий на Си */ // Это комментарий на Си++ • Лексемы — единицы текста программы, которые при компиляции воспринимаются как единое целое и не могут быть разделены на более мелкие элементы. • Лексемы: идентификаторы, служебные слова, константы, разделители, знаки операций.
Типы данных языка Си++ Арифметические Целые char int Указатели Скалярные Плавающие float double Типы Массивы Составные Структуры Смесь
Типы данных языка Си++
2 4 Тест на тему «Введение в языки программирования» Вариант 1 Подчеркните нужный ответ к каждому вопросу. 1. Языками высокого уровня являются а) Автокод б) Паскаль в) Ассемблер г) Си д) ЯПВУ е) ЯМК ж) Си++ з) Бейсик и) Фортран 2. Транслятор нужен для перевода алгоритма решения задачи а) с русского языка на английский б) с ЯПВУ на ЯМК в) с ЯМК на ЯПВУ г) с любого языка на другой д) с любого языка программирования на другой язык программирования 3. Система программирования именуются по названию своего: входного/выходного языка 4. Методами трансляции не являются а) компиляция б) ассимиляция в) интерпретация г) интеграция д) ассемблирование 5. Аналогом «синхронного перевода» является а) компиляция б) ассимиляция в) интерпретация г) ассемблирование 6. Язык Бейсик часто реализуется через а) компилятор б) ассимилятор в) терминатор г) интерпретатор д) ассемблер 7. Первым был создан язык а) Бейсик б) Паскаль в) Пролог г) Си д) Фортран е) Си++ 8. Операторы присваивания являются элементами языка программирования: да / нет 9. Смысловое содержание языковой конструкции называется: семантикой / синтаксисом. 10. Какой из комментариев будет понятен и в Си, и в Си++ а) // это комментарий б) /* это комментарий */ 11. Тело функции, следующее после заголовка, заключается между парой
2 5 Тест на тему «Введение в языки программирования» Обведите нужные ответы к каждому вопросу. Вариант 2 1. «Родным» языком ЭВМ является а) Автокод б) Паскаль в) Ассемблер г) Си д) ЯПВУ е) ЯМК ж) Си++ з) Бейсик и) Фортран 2. Системы программирования позволяют исполнять на ЭВМ программы, написанные на а) языках высокого уровня б) языках низкого уровня в)языках любого уровня 3. Транстятор входит в любую систему программирования: да / нет 4. Аналогом «синхронного перевода» является а) компиляция б) ассимиляция в) интерпретация г) ассемблирование 5. Программы, написанные на Си всегда проходят а) компиляцию б) ассимиляцию в) интерпретацию г) ассемблирование 6. Язык Паскаль создан а) Д. Ритчи б) Н. Виртом в)Б. Гейтсом г) Б. Паскалем д) Р. Мартином 7. ЯПВУ имеют похожую структуру / различную структуру 8. Операции и выражения языка относятся к теме «Организация данных» : да / нет 9. Всякий язык программирования имеет 3 основные составляющие: а) алфавит б) морфологию в) синтаксис г) грамматику д) диалектику е) семантику ж)орфографию 10. Язык Си / Си++ включает в себя как подмножество язык Си / Си++. 11. Программа на Си содержит строку void main ( ) , которая означает а) имя функции будет void б) имя функции будет main 12. Расшифруйте сокращение ЯПВУ – это. .


