Скачать презентацию Основы программирования 1 Машинный код Команды поступающие Скачать презентацию Основы программирования 1 Машинный код Команды поступающие

11 Основы программирования.pptx

  • Количество слайдов: 29

Основы программирования 1 Основы программирования 1

Машинный код Команды, поступающие в процессор по шинам, представляют собой последовательности нулей и единиц, Машинный код Команды, поступающие в процессор по шинам, представляют собой последовательности нулей и единиц, то есть числа. Поэтому программа, с которой работает процессор, представляет собой последовательность чисел, называемую машинным кодом. Каждая модель процессора имеет свой собственный набор команд. Говорят, что процессор A совместим с процессором B, если процессор A полностью «понимает» машинный код процессора B.

Программа «Hello, world!» для процессора архитектуры x 86 выглядит следующим образом (в шестнадцатеричном представлении Программа «Hello, world!» для процессора архитектуры x 86 выглядит следующим образом (в шестнадцатеричном представлении ): BB 11 01 B 9 0 D 00 B 4 0 E 8 A 07 43 CD 10 E 2 F 9 CD 20 48 65 6 C 6 C 6 F 2 C 20 57 6 F 72 6 C 64 21 3

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

Язык программирования формализованный язык. Синтаксис языка программирования определяет «слова» , понятные транслятору, и правила Язык программирования формализованный язык. Синтаксис языка программирования определяет «слова» , понятные транслятору, и правила записи команд (операторов). Синтаксис – это описание языка программирования, определяющее вид, форму и структуру конструкций языка. Пример. «Это кошка страус зеленая» . Слова и символы допустимы для русского языка, но вместе составляют недопустимую конструкцию (синтаксическая ошибка)

Семантика языка программирования определяет смысл каждой синтаксической структуры. Семантика языка – это интерпретация абстрактного Семантика языка программирования определяет смысл каждой синтаксической структуры. Семантика языка – это интерпретация абстрактного синтаксиса в терминах модели. Пример. «Зеленая кошка – это страус» . Синтаксис правильный, но фраза лишена смысла (семантическая ошибка). Процесс поиска ошибок в программе (синтаксических или семантических) называется тестированием, процесс устранения ошибок – отладкой. 6

Постановка задачи Загружаемый модуль программы Разработка алгоритма Исходный текст программы Трансляция (лексический, семантический анализ, Постановка задачи Загружаемый модуль программы Разработка алгоритма Исходный текст программы Трансляция (лексический, семантический анализ, создание объектного кода) 7

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

Интерпретатор сразу выполняет команды языка, указанные в тексте программы. Интерпретатор берет очередной оператор, анализирует Интерпретатор сразу выполняет команды языка, указанные в тексте программы. Интерпретатор берет очередной оператор, анализирует его структуру и исполняет, затем происходит переход к следующему оператору и т. д. ØПрограммы с большим объемом повторяющихся вычислений могут работать медленно ØДля работы на другом компьютере требуется наличие интерпретатора 9

В реальных системах программирования используются и компиляция, и интерпретация. Отладка может выполняться в процессе В реальных системах программирования используются и компиляция, и интерпретация. Отладка может выполняться в процессе интерпретации, а результирующий код не обязательно будет машинным – он может быть промежуточным машинно-независимым кодом абстрактного процессора, который в различных компьютерных архитектурах станет выполняться с помощью интерпретатора или компилироваться в соответствующий машинный код. 10

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

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

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

Парадигмы языков программирования q q Императивные (процедурные) языки описывают решение задачи как последовательность процедур Парадигмы языков программирования q q Императивные (процедурные) языки описывают решение задачи как последовательность процедур Функциональные языки описывают требуемый результат в виде набора вложенных друг в друга функций (Haskell) Логические языки описывают требуемый результат в виде суммы логических операций (Prolog) Объектно-ориентированные языки способны определять абстрактные типы данных и реализовывать основные парадигмы ООП: инкапсуляцию, наследование и полиморфизм (C++, Java, Object Pascal и др. )

Поколения языков программирования Первый этап – машинные коды (50 -е гг. ) Фрагмент программы Поколения языков программирования Первый этап – машинные коды (50 -е гг. ) Фрагмент программы в машинном коде Фрагмент программы на языке ассемблера

Второй этапа – языки высокого уровня (60 -е гг. ) Каждая команда в языке Второй этапа – языки высокого уровня (60 -е гг. ) Каждая команда в языке высокого уровня скрывает десятки и сотни команд на языке ассемблера. ALGOL, Fortran, APL 16

Третий этап – структурное программирование Вырабатывался наиболее общий алгоритм работы программы, а затем производилась Третий этап – структурное программирование Вырабатывался наиболее общий алгоритм работы программы, а затем производилась декомпозиция этого алгоритма до уровня подпрограмм. ALGOL-68, C, Pascal 17

Четвертый этап – модульное программирование Программа делится на модули, которые при компиляции образуют отдельные Четвертый этап – модульное программирование Программа делится на модули, которые при компиляции образуют отдельные объектные файлы. Объектные файлы собираются в единое целое и получается исполняемая программа. Модули можно использовать многократно как в виде исходного кода, так и скомпилированных объектных файлов. 18

Пятый этап – объектно-ориентированный подход Объекты окружающего мира находят свое абстрактное отражение в сложных Пятый этап – объектно-ориентированный подход Объекты окружающего мира находят свое абстрактное отражение в сложных типах данных, называемых классами. C++, Java, Object Pascal, языки семейства Microsoft. NET 19

Шестой этап – компонентный подход Построение программного обеспечения из независимых друг от друга «кирпичиков» Шестой этап – компонентный подход Построение программного обеспечения из независимых друг от друга «кирпичиков» , которые объединяются между собой благодаря специальным стандартизированным интерфейсам. Компоненты могут быть написаны на разных языках программирования и скомпилированы в разных средах разработки. 20

ОБЗОР ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ 21 ОБЗОР ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ 21

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

Языки процедурного программирования Фортран создан в начале 50 -х годов для программирования научно-технических задач; Языки процедурного программирования Фортран создан в начале 50 -х годов для программирования научно-технических задач; Кобол – создан в конце 60 -х годов 20 -го века для решения задач обработки больших объемов данных, хранящихся на различных носителях данных; Алгол (1960 год) – это многоцелевой расширенный язык программирования. В нем впервые введены понятия «блочная структура программы» и «динамическое распределение памяти» . Не получил развития из-за отсутствия хороших компиляторов.

BASIC – язык программирования для начинающих. Характеризуется простотой освоения и наличием универсальных средств для BASIC – язык программирования для начинающих. Характеризуется простотой освоения и наличием универсальных средств для решения научных, технических и экономических задач. Паскаль (1968 -1971 гг). В основу языка положен подход от общей задачи к частным (более простым и меньшим по объему). Си - планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Похож на Паскаль и имеет дополнительные средства для прямой работы с памятью. 24

Языки объектно-ориентированного программирования С++ (Си++) – объектно –ориентированное расширение языка Си, созданное Страуструпом в Языки объектно-ориентированного программирования С++ (Си++) – объектно –ориентированное расширение языка Си, созданное Страуструпом в 1980 г. Java (джава, ява) – создан компанией Sun в нач. 90 -х гг. на основе С++. Призван упростить разработку приложений на основе С++ путем исключения из него всех низкоуровневых возможностей. Главная особенность – компиляция не в машинный код, а в платформенно-независимый байт-код. Этот байт -код выполняется с помощью интерпретатора – виртуальной java-машины, версии которой созданы для любой платформы.

С# (Си шарп) – создана в конце 90 -х гг. в Microsoft. В нем С# (Си шарп) – создана в конце 90 -х гг. в Microsoft. В нем воплотились лучшие идеи С и С++, а также достоинства Java. 26

Языки программирования баз данных База данных – это файл (или группа файлов), представляющий собой Языки программирования баз данных База данных – это файл (или группа файлов), представляющий собой упорядоченный набор записей, имеющих единообразную структуру и организованных по единому шаблону. Для работы с базами данных был создан структурированный язык запросов SQL (Structured Query Language). Для управления большими базами данных разработаны СУБД (системы управления базами данных). В каждой СУБД помимо поддержки языка SQL имеется также свой уникальный язык.

Языки программирования для Интернета Языки программирования для компьютерных сетей являются интерпретируемыми. Perl - язык, Языки программирования для Интернета Языки программирования для компьютерных сетей являются интерпретируемыми. Perl - язык, приспособленный для обработки произвольных текстовых файлов, извлечения из них необходимой информации и выдачи сообщений. Команды Perl могут получить данные из формы HTML или другого источника и выполнить с ними какое-нибудь действие.

PHP (1995 -1997 гг) обладает средствами доступа к БД и используется создателями динамических сайтов PHP (1995 -1997 гг) обладает средствами доступа к БД и используется создателями динамических сайтов во всем мире VRML (1994 г) создан для организации виртуальных трехмерных интерфейсов в Интернете XML. С 1996 г идет работа над созданием универсального языка структуры документов. Может стать заменой языка HTML. 29