Green-sell.info

Новые технологии
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Поколение языков программирования. обзор языков программирования высокого уровня.

Машинный код процессора. Понятие программы. Уровни языков программирования.

Машинный код – последовательность чисел, в которых закодирована программа для исполнения процессором.

Машинный код (платформенно-ориентированный код), машинный язык — система команд (набор кодов операций) конкретной вычислительной машины, которая интерпретируется непосредственно процессором или микропрограммами этой вычислительной машины.

Машинный код можно рассматривать как примитивный язык программирования или как самый низкий уровень представления скомпилированных или ассемблированных компьютерных программ. Большинство программ пишется на языках более высокого уровня и транслируется в машинный код компиляторами. Машинный код иногда называют нативным кодом (также собственным или родным кодом — от англ. native code), когда говорят о платформенно-зависимых частях языка или библиотек.

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

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

Для разработки программ используются специальные языки.

Язык программирования – это формальная знаковая система, которая предназначена для написания программ, понятных для исполнителя (в нашем рассмотрении – это компьютер).

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

Поколение языков программирования. Обзор языков программирования высокого уровня.

Иногда различают пять поколений языков программирования, правда данное разделение является спорным:

I поколение: Начало 1950-х годов — язык первых компьютеров. Первый язык ассемблера, созданный по принципу «одна инструкция — одна строка». Основная отличительная особенность: ориентирование на конкретный компьютер.

II поколение: Конец 1950-х — начало 1960-х гг. В язык Assembler введено понятие переменной, то есть стало возможным создание программ без принадлежности к отдельным адресам памяти.

III поколение: 1960-е гг. — Языки программирования высокого уровня. Их характеристики: относительная простота; независимость от конкретного компьютера; возможность использования мощных синтаксических конструкций. Простота языка позволяет писать небольшие программы и людям, которые не являются профессиональными программистами. Основная отличительная особенность языка третьего поколения: ориентирование на алгоритм (алгоритмические языки). Примеры: Си, Паскаль, Джава, Бейсик, и многие другие. Всего в мире существует около 200 популярных языков программирования третьего уровня.

IV поколение: Начало 1970-х гг. до сегодняшнего времени. Непроцедурные, объектно-ориентированные, языки запросов, параллельные. Часто относят: SQL, SGML (HTML, XML), Prolog, и многие другие узкоспециализированных декларативных языков. Основная отличительная особенность языка четвертого поколения: приближение к человеческой речи (декларативные языки). Некоторые языки имеют черты одновременно и третьего и четвертого поколений.

V поколение: Языки искусственного интеллекта, экспертных систем и баз знаний, естественные языки. Ориентированы на повышение интеллектуального уровня ЭВМ и интерфейса с языками.

Fortran (Фортран). Это первый компилируемый язык, созданный Джимом Бэкусом в 50-е годы. Основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода. Хотя в Фортране впервые был реализован ряд важнейших понятий программирования, удобство создания программ было принесено в жертву возможности получения эффективного машинного кода. Однако для этого языка было создано огромное количество библиотек, начиная от статистических комплексов и кончая пакетами управления спутниками, поэтому Фортран продолжает активно использоваться во многих организациях, а сейчас ведутся работы над очередным стандартом Фортрана F2k, который появился в 2000 году. Имеется стандартная версия Фортрана HPF (High Performance Fortran) для параллельных суперкомпьютеров с множеством процессоров.

Cobol (Кобол). Это компилируемый язык для применения в экономической области и решения бизнес задач, разработанный в начале 60-х годов. Он отличается большой «многословностью» — его операторы иногда выглядят как обычные английские фразы. В Коболе были реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях. На этом языке создано очень много приложений, которые активно эксплуатируются и сегодня. Достаточно сказать, что наибольшую зарплату в СИГА получают программисты на Коболе.

Algol (Алгол). Компилируемый язык, созданный в 1960 году. Он был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения. В 1968 году была создана версия Алгол 68, по своим возможностям и сегодня опережающая многие языки программирования, однако из-за отсутствия достаточно эффективных компьютеров для нее не удалось своевременно создать хорошие компиляторы.

Pascal (Паскаль). Язык Паскаль, созданный в конце 70-х годов основоположником множества идей современного программирования Никлаусом Виртом, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его при создании крупных проектов.

Basic (Бейсик). Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении.

С (Си). Данный язык был создан в лаборатории Bell и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора.

Си во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью (указатели). На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (Unix).

C++ (Си++). Си++ — это объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость, в результате чего создание сложных и надежных программ потребовало от разработчиков высокого уровня профессиональной подготовки.

Читать еще:  Как запрограммировать комп на выключение

Java (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка — компиляция не в машинный код, а в платформно — независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора — виртуальной Java-машины/УМ (Java Virtual Machine), версии которой созданы сегодня для любых платформ. Благодаря наличию множества Java-машин программы на Java можно переносить не только на уровне исходных текстов, но и на уровне двоичного байт-кода, поэтому по популярности язык Ява сегодня занимает второе место в мире после Бейсика.

Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику (технология Jini) и созданию платформно — независимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами (технология Java Beans). Пока основной недостаток этого языка — невысокое быстродействие, так как язык Ява интерпретируемый.

3. Понятия: алгоритм, семантика, синтаксис, отладка и тестирование программы.

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

Синтаксис –совокупность правил и требований записи команд (операторов).

Семантика –смысл каждой команды и других конструкций языка.

Отладка –процесс устранения ошибок.

Тестирование –процесс поиска ошибок в программе.

Статьи к прочтению:

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

Похожие статьи:

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

Рассматривают пять поколений языков программирования (ЯП). Первые три поколения ЖЕ характеризовались более сложным набором зарезервированных слов и…

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

Все многообразие современных языков программирования имеет общую эволюционную историю, поэтому существуют классификации по истории языков программирования («по поколениям»). В каждом новом поколении языки программирования становятся все более высокого уровня.

Рассмотрим одну из таких классификаций.

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

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

Вместе с появлением компьютеров третьего поколения, развитие языков программирования также вступило в новую фазу. Период с середины 50-х до 70-х годов отмечен появлением первых языков программирования высокого уровня (high-level languages). Эти языки впервые позволили ученым (прежде всего, математикам) работать с компьютерами. Языки третьего поколения, такие как С, Pascal и Fortran, состоят из английских слов, например READ, WRITE, GOTO, и математических символов. В отличие от языков первого и второго поколений синтаксис в языках третьего поколения не зависит от компьютера, на котором исполняются написанные на них программы. Язык программирования FORTRAN позволял довольно легко определять переменные и использовать для вычислений математические выражения. Для языков высокого уровня, таких как FORTRAN и COBOL, понадобились более быстрые, высокоэффективные компиляторы, поскольку при преобразовании исходного кода, выходные программы получались большими.

Четвертое поколение языков программирования зародилось в конце 70-х, и можно сказать, что их развитие продолжается по сей день. В них достигнут еще больший уровень абстракции Это такие языки как SQL (структурированный язык запросов для работы с базами данных) или Mathematica и MathCad (языки для сложных математических вычислений и решения научных задач). Эти языки предоставляют программисту гораздо более естественную форму общения с компьютером, но применимы для решения очень ограниченного круга задач. Эти языки существенно уменьшили время разработки ПО и позволили выполнять эту работу даже людям без технического образования, и не прибегая к помощи профессиональных программистов. Сегодня для выполнения многих задач программирование как таковое вообще не требуется. Например, появление приложений электронных таблиц (spreadsheets), таких как Microsoft Excel, позволяет обычным пользователям обрабатывать финансовую информацию и управлять большими массивами данных. В 60-х и 70-х годах так просто, без применения языков программирования, использовать возможности компьютеров было невозможно.

Когда пришло пятое поколение языков программирования (это прежде всего сценарные языки), эволюционный путь развития оказался нарушен. Сценарные языки программирования гораздо проще языков четвертого поколения. По сути, все они — языки-интерпретаторы. Это делает сценарные языки идеальными для написания небольших программ, но не для использования в крупных проектах. Кроме того, сценарные языки допускают вольную трактовку правил написания кода, на компьютерном жаргоне они называются «нестрогими». Сценарные языки предназначены для быстрого написания программ — посредников между другими программами, а не самостоятельных приложений. Они подобны клею, что делает их удобными для использования в интернет-приложениях, суть которых как раз и состоит в обмене данными между программами. Изящество языков программирования, так ценимое прежними поколениями разработчиков, здесь принесено в жертву удобству использования. Эти языки получили широкое распространение из-за высокой гибкости и адаптации к нуждам Интернета. Яркие примеры — Perl, применяемый для обмена данными между интернет-сервером и компьютером пользователя, и Python, используемый, помимо прочего, для управления интернет-форумами, Tcl/Tk, awk, C Shell, JavaScript (название JavaScript — не более чем маркетинговый ход, поскольку этот язык никак не связан с Java).

Читать еще:  Мультипрограммирование в системе реального времени

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

Пять поколений языков программирования

Иногда различают пять поколений языков программирования, правда данное разделение является спорным:

Первое поколение

Начало 1950-х годов — язык первых компьютеров. Первый язык ассемблера, созданный по принципу «одна инструкция — одна строка».

Основная отличительная особенность: ориентирование на конкретный компьютер.

Второе поколение

Конец 1950-х — начало 1960-х г.г. Разработан символьный ассемблер, в котором появилось понятие переменной. Это первая полноценная язык.

Основная отличительная особенность: ориентирование на абстрактный компьютер с такой же системой команд.

Третье поколение

1960-е г.г. — Языки программирования высокого уровня. Их характеристики:

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

Простота языка позволяет писать небольшие программы и людям, которые не являются профессиональными программистами.

Основная отличительная особенность языка третьего поколения: ориентирование на алгоритм (алгоритмические языки).

Примеры: Си, Паскаль, Джава, Бейсик, и многие другие.

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

Четвертое поколение

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

Часто относят: SQL, SGML ( HTML, XML ), Prolog, и многие другие узкоспециализированных декларативных языков. Правда ряд языков, которые относят к четвертому поколению, не являются языками программирования как таковыми. Например SQL является языком запросов к базам данных, HTML является языком разметки гипертекста, а не полноценными языками программирования, скорее они выступают своеобразными специализированными дополнениями к языкам программирования. Тоже самое касается XML.

Основная отличительная особенность языка четвертого поколения: приближение к человеческой речи (декларативные языки).

Некоторые языки имеют черты одновременно и третьего и четвертого поколений.

Пятое поколение

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

Производители пропроиетарних программных продуктов часто пытаются приписать своим продуктам какие маркетинговые особенности, и порой указывают что их продукт — это «язык пятого поколения». В действительности, все эти продукты — это просто среды для ускоренного создания продуктов (Rapid Application Development — RAD), и используют языки третьего и четвертого поколений.

Речь пятого поколения вытеснит ли существенно потеснит языка третьего (напр. Java) и четвертого поколения (например SQL) за счет значительно увеличенной производительности труда программиста — в 10-1000 раз. По прогнозам, 5GL будет оперировать мета-мета-данными.

Сейчас существует единственный язык, который работает с мета-мета-данными, — это язык команд менеджеров пакетов или менеджеров зависимостей, таких как apt, yum, smart, maven, cpan и другие. Они оперируют над метаданными о метаданных о данных в пакетах. Использование apt-get, yum и smart действительно чрезвычайно повысило производительность системных администраторов — примерно в 1000-и дело. Использование менеджеров зависимостей, таких как maven, cpan, rakudo, pim, easy_install, действительно значительно повысило производительность программистов, примерно в 10-ть раз. К сожалению, эти языки являются языками командной строки и не являются языками программирования.

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

Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х годов. Это был первый язык ассемблера, созданный по принципу «одна инструкция — одна строка».

Расцвет второго поколения языков программирования пришелся на конец 50-х — начало 60-х годов. Тогда был разработан символический ассемблер, в котором появи­лось понятие переменной. Он стал первым полноценным языком программирования. Благодаря его возникновению заметно возросли скорость разработки и надежность программ.

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

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

Рождение языков пятого поколения произошло в середине 90-х годов. К ним отно­сятся также системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Главная идея, кото­рая закладывается в эти языки, — возможность автоматического формирования результирующего текста на универсальных языках программирования (который потом требуется откомпилировать). Инструкции же вводятся в компьютер в макси­мально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием.

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

Fortran (Фортран). Это первый компилируемый язык, созданный Джимом Бэкусом в 50-е годы. Основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода. Хотя в Фортране впервые был реализован ряд важнейших понятий программирования, удобство создания программ было принесено в жертву возможности получения эффективного машинного кода. Однако для этого языка было создано огромное количество библиотек, начиная от статистических комплексов и кончая пакетами управления спутниками, поэтому Фортран продолжает активно использоваться во многих организациях.

Читать еще:  Среда программирования javascript

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

Basic (Бейсик). Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении.

С (Си). Данный язык был создан в лаборатории Bell и первоначально не рассматри­вался как массовый. Он планировался для замены ассемблера, чтобы иметь возмож­ность создавать столь же эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора.

Java (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Благодаря наличию мно­жества Java-машин программы на Java можно переносить не только на уровне исход­ных текстов, но и на уровне двоичного байт-кода, поэтому по популярности язык Ява сегодня занимает второе место в мире после Бейсика. Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику, и созданию платформенно — независимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различ­ными операционными системами (технология Java Beans). Пока основной недоста­ток этого языка — невысокое быстродействие, так как язык Ява интерпретируемый.

З. Поколения и классификация языков программирования

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

Поколения ЯП

В первое поколение входят языки, созданные в начале 50-х годов, когда первые компьютеры только появились на свет. Это был первый язык ассемблера, созданный по принципу «одна инструкция — одна строка».ЯП первого поколения представляли собой набор машинных команд в двоичном (бинарном) или восьмеричном формате, который определялся архитектурой конкретной ЭВМ. Каждый тип ЭВМ имел свой ЯП, программы на котором были пригодны только для данного типа ЭВМ. От программиста при этом требовалось хорошее знание не только машинного языка, но и архитектуры ЭВМ.

Расцвет второго поколения языков программирования пришелся на конец 50-х -начало 60-х годов. Тогда был разработан символический ассемблер, в котором появилось понятие переменной. Он стал первым полноценным языком програм­мирования. Благодаря его возникновению заметно возросли скорость разработки и надежность программ. Языки ассемблерного типа (ассемблеры, макроассемблеры), позволили вместо двоичных и других форматов машинных команд использовать их символьные обозначения (имена). Являясь существенным шагом вперед, ассемблерные языки все еще оставались машинно-зависимыми, а программист все также должен был быть хорошо знаком с организацией и функционированием аппаратной среды конкретного типа ЭВМ. При этом ассемблерные программы все так же затруднительны для чтения, трудоемки при отладке и требуют больших усилий для переноса на другие типы ЭВМ. Однако и сейчас ассемблерные языки используются при необходимости разработки высокоэффективного программного обеспечения (минимального по объему и с максимальной производительностью).

Третье поколение ЯП начинается с появления в 1956 г. первого языка высокого уровня — Fortran. Первоначально Fortran обладал весьма ограниченными средствами обеспечения работы с символьной информацией и с системой ввода-вывода. Однако постоянное развитие языка сделало его одним из самых распространенных ЯВУ.

Вскоре после языка Fortran появились такие ныне широко известные языки, как Algol, Cobol, Basic, PL/1, Pascal, APL, ADA, C, Forth, Lisp, и др. В настоящее время насчитывается свыше 2000 различных языков высокого уровня.

Языки четвертого поколения носят ярко выраженный непроцедурный характер, определяемый тем, что программы на таких языках описывают только что, а не как надо сделать. Типичными примерами непроцедурных языков являются языки, используемые для задач искусственного интеллекта (например, Prolog, Langin). Так как непроцедурные языки имеют минимальное число син­таксических правил, они значительно более пригодны для применения непрофессионалами в области программирования.

Второй тенденцией развития ЯП четвертого поколения являются объектно-
ориентированные
языки, базирующиеся на понятии программного объекта,
который состоит из структур данных и алгоритмов, при этом каждый объект знает, как выполнять операции со своими собственными данными. Такими свойствами обладают объектно-ориентированные Pascal, Basic, C++, SmallTalk, Simula, Actor и ряд дру­гих языков программирования.

Третьим направлением развития языков четвертого поколения можно считать языки запросов, позволяющих пользователю получать информацию из баз данных. Среди языков запросов фактическим стандартом стал язык SQL (Structured Query Language).

И, наконец, четвертым направлением развития являются языки параллельного программирования (модификация ЯВУ Fortran, языки Occam, SISAL, FP и др.), которые ориентированы на создание программного обеспечения для вычислительных средств параллельной архитектуры (многомашинные, мультипроцессорные среды и др.).

К интенсивно развивающемуся в настоящее время пятому поколению относятся языки искусственного интеллекта, экспертных систем, баз знаний (InterLisp, ExpertLisp, IQLisp, SAIL и др.), а также естественные языки, не требующие освоения какого-либо специального синтаксиса (в настоящее время успешно используются естественные ЯП с ограниченными возможностями — Clout, Q&A, HAL и др.).

Классификация ЯП. Изучение ЯП часто начинают с их классификации. Опи­шем наиболее часто применяемые факторы для классификации ЯП.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector