Www.bzfar.net Классификация языков программирования.

Презентация:



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

ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
Классификация. Язык программирования – это фиксированная система обозначений и правил, предназначенная для описания алгоритмов и структур данных.
Этапы решения задач на компьютере 1. Постановка задачи. 2. Построение математической модели. 3. Составление алгоритма. 4. Запись алгоритма на языке программирования(кодирование)
Уильям (Билл) Гейтс. Информатика Hard Ware (технические средства) Soft Ware (программные средства) Brain Ware (алгоритмические средства) MS Windows MS.
Языки программирования. Уровни языков программирования Процессор Естественный язык Пример программы на различных языках Трансляторы.
Языки программирования.. Этапы создания программы. Для представления алгоритма в виде, понятном компьютеру, служат языки программирования. Сначала разрабатывается.
Программа Виды программ Языки программирования. ПК – это электронный прибор, предназначенный для автоматизации создания, хранения, обработки и передачи.
Тема урока: Классификация языков программирования.
Цель урока: Дать основные понятия о языках программирования. План : 1. Основные сведения о языках программирования. 2. Основные средства языков. Алфавит.
Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
§ 4 Языки программирования Глава 1. Введение в программирование.
АЛГОРИТМ (интуитивное понятие алгоритма) - строгая и четкая конечная система правил, которая определяет последовательность действий над некоторыми объектами.
Что такое программирование? Совокупность процессов, связанных с разработкой программ и их реализацией. В широком смысле к указанным процессам относят все.
Язык программирования Паскаль 1 часть. Система программирования – совокупность программ для создания других программ. Среда программирования – программная.
Программирование на языках высокого уровня
Подготовил Дубровин Александр Ученик 9 класса Ольховской школы.
Операционная система. 1. Как компьютер обрабатывает информацию? 2. Язык, на котором «думает» компьютер – какой он? 3. Как вы думаете: есть ли такая профессия,
Тема: Способы записи алгоритма: псевдокод. Вопросы темы: Что такое псевдокод? Как записываются алгоритмы на школьном алгоритмическом языке? Команды школьного.
Системы программирования Средства создания программ Интегрированные системы программированияИнтегрированные системы программирования Среды быстрого проектирования.
Транксрипт:

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

Цель обучения: анализировать классификацию, развитие и свойства языков программирования

Критерии успеха для цели: анализировать классификацию, развитие и свойства языков программирования Навык Критерий успеха Знание Знает виды языков программирования Знает особенности языков программирования высокого и низкого уровней Знает разницу между языками программирования высокого и низкого уровней Понимание Определяет недостатки языков программирования низкого уровня Анализ Умеет анализировать программный код и определяет к какому уровню языка программирования относится программный код

Можно выделить следующие уровни языков программирования: машинные; машинные машинно-оpиентиpованные (ассемблеры);ассемблеры машинно-независимые (языки высокого уровня). Машинные языки и машинно-ориентированные языки это языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.

Языки высокого уровня делятся на: процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания; объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами.

Поколения языков программирования Поколения Языки программирования Характеристика Первое Машинные Ориентированы на использование в конкретной ЭВМ, сложны в освоении, требуют хорошего знания архитектуры ЭВМ Второе Ассемблеры, макроассемблеры Более удобны для использования, но по- прежнему машинно-зависимы Третье Языки высокого уровня Мобильные, человеко-ориентированные, проще в освоении Четвёртое Непроцедурные, объектно- ориентированные, языки запросов, параллельные Ориентированы на непрофессионального пользователя и на ЭВМ с параллельной архитектурой Пятое Языки искусственного интеллекта, экспертных систем и баз знаний, естественные языки Ориентированы на повышение интеллектуального уровня ЭВМ и интерфейса с языками

Процессоры (CPUs) компьютера очень важны, но при этом они просты, когда дело доходит до обработки. Они могут обрабатывать только единицы (1) и нули (0). Они не понимают как обрабатывать код в форме в которой мы пишем его (например, Pascal, C#). Что же должно случиться, чтобы процессор мог работать с этим кодом?

От нашего мозга до процессора(CPU)…

От нашего мозга до процессора(CPU)… Алгоритм

От нашего мозга до процессора(CPU)… Алгоритм

От нашего мозга до процессора(CPU)… Machine Language Assembly Language Алгоритм

От нашего мозга до процессора(CPU)… Machine Language Assembly Language Алгоритм

Разница между языками высокого и низкого уровней… Машинный код (Язык очень низкого уровня) Процессор может понимать только один тип кода: Машинный код Сделан из кодированных команд и данных. Например, (двоичный) или B8200 (шестнадцатеричный) написанная программа на «Машинном коде» сложная для понимания человеком, но имеет самую высокую скорость выполнения. High Level Language Assembly Language Machine Language (Code) Hardware (CPU)

Язык Ассемблер (Язык низкого уровня) Чтобы преодолеть проблему был создан язык Ассемблер. Этот язык имеет небольшой набор команд, который представляет определенную часть машинного кода. Это помогло программистам, т.к. они не должны были помнить двоичный код, вместо этого они учили команды. Например: Вместо запоминания, что значит 1011 или 1001, они уже запоминали команды такие как ADD и SUB. Эти команды известны как Мнемоники (простые средства памяти). Для различных процессоров используются различные версии языка Ассемблер, следовательно каждый процессор может обработать только свою версию Ассемблера. Язык Ассемблер также сложен для изучения и использования и поэтому были разработаны Языки программирования Высокого Уровня. (Благодаря меньшему количеству кода, язык ассемблер мог быть обработан процессором быстрее, чем языки высокого уровня) High Level Language Assembly Language Machine Language (Code) Hardware (CPU) Machine Code Mnemonic Code B80200MOV AX, 0002 BB0400MOV BX, DBADD AX, BX CD20INT 20

Языки программирования высокого уровня (Pascal, Basic, Python, Java, C++ и другие) Код высокого уровня более лёгкий для написания и следовательно, для понимания человеком. High Level Language Assembly Language Machine Language (Code) Hardware (CPU)

Задание o_i_nizkogo_urovnej/

Трансляторы Языки программирования высокого уровня Язык Ассемблер Машинный код Аппаратное обеспечение. Процессор (CPU) ? Так каким же образом НАПИСАННЫЙ КОД НА ЧЕЛОВЕЧЕСКОМ ЯЗЫКЕ переводится в Машинный код?

Трансляторы Трансляторы это программы, которые конвертируют команды языка программирования высокого уровня: write, IF, For и т.д. …в инструкции машинного кода: 1011, 11001, и т.д. …таким образом процессор может обработать данные! Два типа пути трансляции: 1. Берет целый код и конвертирует его в машинный перед его исполнением (известный как компиляция). 2. Берет одну инструкцию кода за один раз, переводит и выполняет ее перед переводом следующей инструкции (известно как интерпретация).

Три типа трансляторов: Компилятор Интерпретатор Ассемблер Переводит целый код в один файл (часто в.exe файл). Файл может быть запущен на любом компьютере без транслятора. Может занять длительное время компиляция исходного кода, т.к. транслятор будет часто конвертировать инструкции в различные наборы машинного кода и проверять будет ли понимать их процессор. Использует больше памяти, чем интерпретатор, но быстрее запускает программу Переводит целый код в один файл (часто в.exe файл). Файл может быть запущен на любом компьютере без транслятора. Может занять длительное время компиляция исходного кода, т.к. транслятор будет часто конвертировать инструкции в различные наборы машинного кода и проверять будет ли понимать их процессор. Использует больше памяти, чем интерпретатор, но быстрее запускает программу Конвертирование исходного кода в машинный код строка за строкой «line by line». Использует меньше памяти, чем компилятор. Следовательно программа работает очень медленно. Главная причина почему используется интерпретатор это тестирование на этапе разработки. Программисты могут быстро выявить ошибки и исправить их. Транслятор должен присутствовать для запуска программы. Конвертирование исходного кода в машинный код строка за строкой «line by line». Использует меньше памяти, чем компилятор. Следовательно программа работает очень медленно. Главная причина почему используется интерпретатор это тестирование на этапе разработки. Программисты могут быстро выявить ошибки и исправить их. Транслятор должен присутствовать для запуска программы. Это тип транслятора, используемый для языка Ассемблер (не является языком высокого уровня). Он конвертирует мнемонические инструкции языка ассемблер в машинный код. Это тип транслятора, используемый для языка Ассемблер (не является языком высокого уровня). Он конвертирует мнемонические инструкции языка ассемблер в машинный код. Translators Compilers Interpreters Assemblers

Задание В парах проанализируйте ситуации и определите какой тип транслятора рационально использовать компилятор или интерпретатор. 1)Арман пишет код новой компьютерной игры по биологии. Он хочет проверить свой код на наличие ошибок. Какой тип транслятора вы посоветуете ему использовать? Обоснуйте свой ответ. 2)Татьяна – учитель биологии, которая хочет посмотреть какая игра у Армана получилась и какие функции она выполняет. Какой тип транслятора будет использован в этой ситуации? Обоснуйте свой ответ.

Языки высокого и низкого уровней Почему люди используют языки высокого уровня чаще при разработке ПО, чем языки низкого уровня? _______________________________________ ____________________________________(2) Фразы: Языки высокого уровня …, в то время как языки низкого уровня ….

Назовите два различия между машинным кодом и языком ассемблера: _______________________________________ ____________________________________ (2) Фразы: Машинный код …, в то время как язык ассемблера …. Языки высокого и низкого уровней

Можем ли мы использовать одну версию языка ассемблер на разных компьютерах? Обоснуйте ответ. _______________________________________ ____________________________________ (1) Фразы: Одна версия язык ассемблер … может быть использована …, потому что …. Языки высокого и низкого уровней

Трансляторы Назовите трансляторы, которые используются для перевода языков высокого уровня в языки низкого уровня. ____________________________ ____________________________ (2)

Трансляторы Преимущества Компилятор Интерпретатор (2) Сравните компиляторы с интерпретаторами и заполните таблицу:

Summary Процессоры (CPUs) очень важны, но при этом они просты, когда дело доходит до обработки. Они могут обрабатывать только единицы (1) и нули (0). Они не понимают как обрабатывать код в форме в которой мы пишем его. Что же должно случиться, чтобы процессор мог работать с этим кодом?

Summary Уровни языков программирования Языки низкого уровня Машинный код АссемблерЯзыки высокого уровняPascal, C, Basic, Python Трансляторы АссемблерыКомпиляторы Интерпретаторы

Рефлексия (Ставим ) Согласен Почти согласен Частично согласен Не согласен Я точно понимаю путь реализации от «идеи до микропроцессора» Я точно знаю различие между языка программирования низкого и высокого уровней Я точно знаю три типа трансляторов Я точно понимаю, чем отличается компилятор от интерпретатора

sa.ru/ProgrProd/YazProgr/index.html pdf