Особенности и применение разных классов языков программирования. Языки программирования примеры программ


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

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

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

Языки низкого уровня

Языки высокого уровня

Машинно-ориентированные языки

(машинные коды, Ассемблер)

Алгоритмические языки

вместо команды ассемблера ADD языки высокого уровня позволяют написать нормальное математическое выражение со знаком «+», например, a=b+c.

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

Примерами служебных программ — интерпретаторов являются GW Basic, Лого, школьный алгоритмический язык, многие языки программирования баз данных. Компиляторами являются Turbo Pascal, С++, Delphi.

По способу разработки программ можно выделить два подхода:

  • процедурное программирование — это программирование, при котором выполнение команд программы определяется их последовательностью, командами перехода, цикла или обращениями к процедурам;

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

Объектно-ориентированное программирование (ООП) не исключает, а охватывает технологию процедурного программирования.

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

Из универсальных языков программирования наиболее популярны следующие: Basic; Pascal; C++; Java.

Для языка Basic существует много версий, реализованных и как интерпретаторы и как компиляторы. В России Basic традиционно используется в курсе информатики средней школы. Среда визуального программирования Microsoft Visual Basic используется как программная поддержка приложений MS Office.

Язык Pascal является компилируемым и широко используется как среда для обучения программированию в ВУЗах. RAD-средой, наследующей его основные свойства, является среда Borland Delphi.

Для языка C++ RAD-средой является Borland C++ Builder. Этот компилируемый язык часто используется для разработки программных приложений, в которых необходимо обеспечить быстродействие и экономичность программы.

Язык Java — интерпретируемый язык — позволяет создавать платформно-независимые программные модули, способные работать в компьютерных сетях с различными операционными системами. RAD-средой для него является Symantec Cafe.

Система программирования — это система для разработки новых программ на конкретном языке программирования.

Современные системы программирования обычно предоставляют пользователям мощные и удобные средства разработки программ. В них входят:

  • компилятор или интерпретатор;

  • интегрированная среда разработки;

  • средства создания и редактирования текстов программ;

  • обширные библиотеки стандартных программ и функций;

  • отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программе;

  • "дружественная" к пользователю диалоговая среда;

  • многооконный режим работы;

  • мощные графические библиотеки; утилиты для работы с

библиотеками

  • встроенный ассемблер;

  • встроенная справочная служба;

  • другие специфические особенности.

Популярные системы программирования — Turbo Basic, Quick Basic, Turbo Pascal, Turbo C. В последнее время получили распространение системы программирования, ориентированные на создание Windows-приложений:

  • пакет Borland Delphi (Дельфи) — блестящий наследник семейства компиляторов Borland Pascal, предоставляющий качественные и очень удобные средства визуальной разработки. Его исключительно быстрый компилятор позволяет эффективно и быстро решать практически любые задачи прикладного программирования.

  • пакет Microsoft Visual Basic — удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций.

  • пакет Borland C++ — одно из самых распространённых средств для разработки DOS и Windows приложений.

studfiles.net

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

Неструктурные языки (широко использовались 40-е годы)

Преимущества

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

Недостатки

  • Для каждого типа вычислительной машины должен был быть написан свой вариант исходного кода.

Применение

  • Быстрые численные расчеты
  • Создание драйверов устройств

Примеры языков: Ассемблеры.

Директивные (структурные) языки (появились в 50-е годы)

Преимущества

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

Недостатки

  • Некоторая потеря в скорости вычислений.

Применение

  • Создание операционных систем и системных программ.
  • Разработка небольших пользовательских приложений.
  • Научные расчеты.

Примеры языков: FORTRAN, C, Pascal.

Декларативные (функциональные и логические) языки (зародились в 60-е годы)

Особенность

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

Преимущества

  • Легче формализуется математическими средствами.
  • Как следствие, программы проще тестировать, т.е. проверять на наличие ошибок.
  • Высокая степень абстракции.

Недостатки

  • Снижение скорости работы программы.

Применение

  • Доказательство теорем.
  • Возможность обработки разнородных данных.

a) Функциональные языки

Особенность

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

Преимущества

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

Недостатки

  • Нелинейная структура программы, следовательно, такое программирование сложно для понимания.
  • Относительно невысокая эффективность вычислений.

Применение

  • Обработка рекурсивных структур данных.
  • Обработка символьной информации.

Примеры языков: Haskell.

b) Логические языки

Особенность

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

Преимущества

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

Недостатки

  • Узкий класс решаемых задач.

Применение

  • Эмуляция искусственного интеллекта.
  • Разработка экспертных систем.

Примеры языков: Prolog.

Объектно-ориентированные языки

Особенности

  • Программа представляет собой описание объектов, их свойств (или атрибутов), классов и отношений между ними, способов взаимодействия.

Преимущества

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

Недостатки

  • Сложность полной формализации реального мира создает в дальнейшем трудности тестирования созданного ПО.

Применение

  • Разработка больших пользовательских приложений.

Примеры языков (большинство современных языков программирования поддерживают концепцию объектно-ориентированного программирования): C++, Python.

Языки сценариев

Особенности

  • Программа представляет собой совокупность возможных сценариев обработки данных. Выбор конкретного сценария зависит от наступления того или иного события.

Преимущества

  • Основные достоинства данного класса языков программирования унаследованы от объектно-ориентированных языков.
  • Легкость использования с инструментальными средствами автоматизированного проектирования и быстрого создания ПО.

Недостатки

  • Сложность тестирования.
  • Большое количество вариантов, которые требуется предусмотреть.
  • Большая вероятность побочных эффектов.

Применение

  • Интернет технологии

Примеры языков: JavaScript, Python, PHP.

inf1.info

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

Цели урока:

Обучающие цели:

дать понятие языка программирования;

дать понятие системы программирования;

дать понятие языков низкого и высокого уровней;

дать определение языка машинных команд;

познакомить учащихся с понятием трансляции;

дать понятие компиляции и интерпретации;

познакомить учащихся с историей языков программирования.

Воспитательные цели:

умение логически мыслить;

делать самостоятельные выводы;

отстаивать собственное мнение;

творчески подходить к выполнению домашнего задания.

Учащиеся должны знать:

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

определение понятия системы программирования;

определение языков программирования низкого и высокого уровней;

определение понятия языка машинных команд;

понятие трансляции;

два способы трансляции;

историю создания  языков программирования.

Учащиеся должны уметь:

отличать язык низкого уровня от языка высокого уровня;

приводить примеры языков программирования;

отличать процесс компиляции от процесса интерпретации.

Подготовка к уроку: плакат, приводимый  в данном методическом пособии на с.  8.

Ход урока:

Постановка целей урока

Учитель (во время раздачи дидактических материалов и листочков для ответов): На этом уроке мы должны проверить то, как вы усвоили материал прежнего урока и изучить новую тему. Сейчас вам раздадут дидактические материалы с тестам, вы должны открыть стр. ___ . На листочках внести свою фамилию и рядом с номером вопроса проставлять букву правильного ответа. На выполнение данной работы вам предоставляется 10 минут.

Предлагаю один вариант для учителя. Жирным шрифтом выделены правильные варианты ответов. – смотрите документ

Эту тему я даю в конце курса.

Логика следующая: в начале обучения ученики очень плохо представляют, что такое программирование и что такое языки программирования. Поэтому темы «Системы языков программирования» и «Структура программы Turbo Pascal» я даю на предпоследних уроках.

Но каждый преподаватель может сам решить, когда давать данные темы.

Итак, если Вы решили пропустить эту тему, то переходите к следующему уроку, если нет – то, теоретический материал предлагается ниже.

Учитель: Кратко пересказывает содержание с. 8.

Языки программирования предназначены для создания программ, которые позволяют управлять ЭВМ. Для разработки программ управления компьютером программисты используют системы программирования (СП).

Язык программирования – это определенная система обозначений и правил для описания алгоритмов.

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

Язык низкого уровня – это средство записи инструкций компьютеру на языке машинных команд (ЯМК).

Язык машинных команд – это язык процессора.

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

Языки программирования высокого уровня допускают описание задач в наглядном, легко воспринимаемом виде. Программа на языке высокого уровня записывается системой обозначений, близкой к человеку (например, набор слов английского языка). Сегодня большинство программистов работают именно на этих языках. Наиболее распространенными являются языки Паскаль, Бейсик, СИ, Фортран.

Однако, чем понятнее для человека язык программирования, тем непонятнее для процессора. Процессор понимает только ЯМК. Тогда нужен переводчик, т.е. программа, которая будет переводить на ЯМК.

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

Давайте посмотрим, как работает переводчик с английского языка на русский. Прежде всего, мы должны заметить, что существует два совершенно не похожих друг на друга вида переводов: синхронный перевод и литературный перевод. Нельзя сказать, что какой-то из них лучше или хуже (проще или сложнее) – это просто два совершенно разных вида перевода.

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

Работа программы – компилятора очень похожа на работу литературного переводчика. Компилятор несколько раз просмотрит текст программы, найдет общие повторяющиеся места и так переведет текст программы на язык машинного кода, что длина объектного модуля будет минимальной, а скорость его работы – максимальной. Такие «интеллектуальные» компиляторы называют оптимизирующими компиляторами. Большинство компиляторов современных языков программирования являются оптимизирующими.

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

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

Итак,  Трансляция – это процесс перевода текста программы с языка высокого уровня на язык машинных команд. Программа-переводчик называется транслятором.

Существует два способа трансляции: компиляция и интерпретация. При компиляции сначала весь текст программы переводится на ЯМК, затем производится ее выполнение. При интерпретации перевод и исполнение происходит параллельно.

Закрепление пройденного материала.

По схеме на с. 5 повторяем материал, который только что объяснил учитель.

Продолжение изучения нового материала

История языков программирования.

Первыми популярными языками высокого уровня, появившимися в 50-х годах, были, Фортран, Кобол (США) и Алгол (в Европе).

Языки Фортран и Алгол предназначались для математических расчетов. Кобол – язык программирования экономических задач.

Огромное количество языков появилось в 60-х, 70-х годах. За всю историю ЭВМ их было создано сотни. Но выдержали испытание временем немногие.

В 1965 году в Дартмутском университете (США) был разработан язык Бейсик. По замыслу авторов, это простой язык, легко изучаемый, предназначенный для программирования несложных расчетных задач.

Значительным событием в истории языков программирования стало создание в 1971 году языка Паскаль. Его автор – швейцарский профессор Никлаус Вирт создавал Паскаль как учебный язык структурного программирования

Наибольший успех и распространение языку Паскаль принесли персональные компьютеры. Фирма Borland International (США) разработала систему программирования Турбо Паскаль - это не только язык и транслятор с него, но еще и операционная оболочка, позволяющая пользователю удобно работать на Паскале.

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

В 1965 году появился язык ЛИСП для решения проблем «искусственного интеллекта». Во Франции в 1972 году для решения этой же проблемы был разработан язык Пролог.

В последнее время самым значительным направлением в развитии программного обеспечения стал объектно-ориентированный подход. Стали популярны объектно-ориентированные операционные системы (Windows), прикладные программы, а также объектно-ориентированные системы программирования (Delphi, Visual Basic).

Творческая работа

При наличии времени ученики делятся на группы и им предлагается в виде схемы изобразить вторую часть теоретическую часть.

После окончания работы все схемы рассматриваются, анализируются и лучшая оценивается.

Если времени нет, то это задание выносится в качестве дополнительного к домашнему заданию.

Домашнее задание:

Ответьте на вопросы:

Что называют системой программирования?

Что такое языки программирования?

Дайте понятие уровня языка.

Что такое трансляторы?

Какие способы трансляции Вы знаете?

Что Вы знаете об истории языков программирования.

Творческий уровень:

 изобразить текст  «История языков программирования»  в виде схемы.

videouroki.net