В развитии инструментального программного обеспечения (т.е. программного обеспечения, служащего для создания программных средств в любой проблемной области) рассматривают пять поколений языков программирования (ЯП). Языки программирования как средство общения человека с ЭВМ от поколения к поколению улучшали свои характеристики, становясь, все более доступными в освоении непрофессионалам.
Первые три поколения ЯП характеризовались более сложным набором зарезервированных слов и синтаксисом. Языки четвертого поколения все еще требуют соблюдения определенного синтаксиса при написании программ, но он значительно легче для освоения. Естественные ЯП, разрабатываемые в настоящее время, составят пятое поколение и позволят определять необходимые процедуры обработки информации, используя предложения языка, весьма близкого к естественному и не требующего соблюдения особого синтаксиса.
Поколения ЯП
Поколения | Языки программирования | Характеристика |
Первое | Машинные | Ориентированы на использование в конкретной ЭВМ, сложны в освоении, требу ют хорошего знании архитектуры ЭВМ |
Второе | Ассемблеры, Макроассемблеры | Более удобны для использования, но по-прежнему машинно-зависимы |
Третье | Языки высокого уровня | Мобильные, человеко — ориентированные, проще в освоении |
Четвертое | Непроцедурные, объектно-ориентированные, языки запросов, параллельные | Ориентированы на непрофессионального пользователя и на ЭВМ с параллельной архитектурой |
Пятое | Языки искусственного интеллекта, экспертных систем и баз знаний, естественные языки | Ориентированы на повышение интеллектуального уровня ЭВМ и интерфейса с языками |
Урок 3. Классификация языков программирования
ЯП первого поколения представляли собой набор машинных команд в двоичном (бинарном) или восьмеричном формате, которым определялся архитектурой конкретной ЭВМ. Каждый тип ЭВМ имел свой ЯП, программы на котором были пригодны только для данного типа ЭВМ. От программиста при этом требовалось хорошее знание не только машинного языка, но и архитектуры ЭВМ.
Второе поколение ЯП характеризуется созданием языков ассемблерного типа (ассемблеров, макроассемблеров), позволяющих вместо двоичных и других форматов машинных команд использовать их мнемонические символьные обозначения (имена). Являясь существенным шагом вперед, ассемблерные языки все еще оставались машинно-зависимыми, а программист все также должен был быть хорошо знаком с организацией и функционированием аппаратной среды конкретного типа ЭВМ. При этом ассемблерные программы все так же затруднительны для чтения, трудоемки при отладке и требуют больших усилий для переноса на другие типы ЭВМ. Однако и сейчас ассемблерные языки используются при необходимости разработки высокоэффективного программного обеспечения (минимального по объему и с максимальной производительностью).
Winderton / Написал несколько Языков Программирования, вот что я узнал
Третье поколение ЯП начинается с появления в 1956 г. первого языка высокого уровня — Fortran, разработанного под руководством Дж. Бэкуса в фирме IВМ. За короткое время Fortran становится основным ЯП при решении инженерно-технических и научных задач. Первоначально Fortran обладал весьма ограниченными средствами обеспечения работы с символьной информацией и с системой ввода-вывода. Однако постоянное развитие языка сделало его одним из самых распространенных ЯВУ на ЭВМ всех классов — от микро- до суперЭВМ, а его версии используются и для вычислительных средств нетрадиционной параллельной архитектуры.
Вскоре после языка Fortran появились такие ныне широко известные языки, как Аlgol, Соbоl, Ваsiс, РL/1, Раscal, АРL, АDА, С, Forth, Lisp, Моdula и др. В настоящее время насчитывается свыше 2000 различных языков высокого уровня.
Языки четвертого поколения носят ярко выраженный непроцедурный характер, определяемый тем, что программы на таких языках описывают только что, а не как надо сделать. В программах формируются скорее соотношения, а не последовательности шагов выполнения алгоритмов. Типичными примерами непроцедурных языков являются языки, используемые для задач искусственного интеллекта (например, Рrolog, Langin). Так как непроцедурные языки имеют минимальное число синтаксических правил, они значительно более пригодны для применения непрофессионалами в области программирования.
Второй тенденцией развития ЯП четвертого поколения являются объектно-ориентированные языки, базирующиеся на понятии программного объекта, впервые использованного в языке Simulа-67 и составившего впоследствии основу известного языка Smalltalk. Программный объект состоит из структур данных и алгоритмов, при этом каждый объект знает, как выполнять операции со своими собственными данными. На самом деле, различные объекты могут пользоваться совершенно разными алгоритмами при выполнении действий, определенных одним и тем же ключевым словом (так называемое свойство полиморфизма). Например, объект с комплексными числами и массивами в качестве данных будет использовать различные алгоритмы для выполнения операции умножения. Такими свойствами обладают объектно-ориентированные Pascal Basic, С++, Smalltalk, Simulа, и ряд других языков программирования.
Третьим направлением развития языков четвертого поколения можно считать языки запросов, позволяющих пользователю получать информацию из баз данных. Языки запросов имеют свой особый синтаксис, который должен соблюдаться, как и в традиционных ЯП третьего поколения, но при этом проще в использовании. Среди языков запросов фактическим стандартом стал язык SQL.
И, наконец, четвертым направлением развития являются языки параллельного программирования (модификация ЯВУ Fortran, языки Оссаm, SISAL, FР и др.), которые ориентированы на создание программного обеспечения для вычислительных средств параллельной архитектуры (многомашинные, мультипроцессорные среды и др.), в отличие от языков третьего поколения, ориентированных на традиционную однопроцессорную архитектуру.
К интенсивно развивающемуся в настоящее время пятому поколению относятся языки искусственного интеллекта, экспертных систем, баз знаний (InterLisp, ExpertLisp, IQLisp, SIAL и др.), а также естественные языки, не требующие освоения какого-либо специального синтаксиса (в настоящее время успешно используются естественные ЯП с ограниченными возможностями — Clout, Q
Трансляторы
Программа, написанная на любом языке программирования, является исходной программой. Особенность таких программ, как мы помним, заключается в том, что они состоят из инструкций, понятных человеку, но не понятных процессору компьютера. Чтобы процессор мог выполнить работу в соответствии с алгоритмом, записанным в исходной программе, эта программа должна быть переведена на машинный язык — язык команд процессора. Такой перевод программы называется трансляцией, а выполняется он специальными программами — трансляторами.
Существует три вида трансляторов: интерпретаторы, компиляторы и ассемблеры.
Интерпретатор — транслятор, переводящий текст программы поэтапно (покомандно) и сразу же (то есть параллельно) выполняющий оттранслированную команду исходной программы.
Компилятор транслирует текст программы в модуль на машинном языке, затем программа переписывается в оперативную память и лишь после этого исполняется процессором компьютера. Именно с использованием трансляторов такого типа осуществляется перевод программы на многих языках программирования в машинный код. Поэтому рассмотрим его чуть подробнее.
Схематически работу компилятора иллюстрирует рис. 1.6.
Цифрой 1 на схеме обозначен блок синтаксического контроля текста программы, цифрой 2 — генератор машинного кода.
![]() |
Если генератор машинного кода компилятора перевел исходный текст программы в необходимую форму, значит, в тексте программы нет синтаксических ошибок, но это не говорит об отсутствии ошибок в алгоритме. Убедиться в правильности работы программы можно только при ее тестировании, то есть при обработке результатов, получаемых в процессе работы программы.
Последний вид трансляторов — ассемблеры. Они предназначены для перевода программы, написанной на языке ассемблера (автокода), в программу на машинном языке.
Все трансляторы, независимо от их вида, решают следующие основные задачи:
+ выполняют анализ и проверяют синтаксис транслируемой программы;
+ генерируют машинный код программы;
+ распределяют память для выходной программы.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
Компьютерная грамотность с Надеждой
Заполняем пробелы — расширяем горизонты!
Языки программирования
Сейчас мы просто не сможем представить свою жизнь без компьютера. Базы данных, компьютерные игры, операционные системы, социальные сети и многое другое.
Всего этого у нас не было бы, если бы люди не разработали специальные языки программирования, с помощью которых сейчас создаётся самое разнообразное программное обеспечение для компьютера.
Языки программирования исчисляются уже не десятками, а сотнями. Есть языки специально для разработки сайтов, игр, анимации.
Какие языки используются для создания обычных прикладных программ (т.е. программ, написанных непосредственно для пользователей)? Их бесчисленное множество, самые популярные из них — C++ и Delphi. Они предоставляют наибольшее количество возможностей для разработки программ на все случаи жизни. Именно их используют профессиональные программисты.
Однако и С++, и Delphi были созданы на основе более простых языков. Для C++ это язык C (называют «Си»). Предшественник Delphi – это Pascal. Многие их учат ещё в школе на уроках информатики. Язык Pascal был создан именно для обучения программированию, так как является очень простым и понятным.
Сейчас он используется практически во всех школах, колледжах, университетах и институтах.
После освоения Pascal изучение Delphi проходит, что называется «на ура». Такая последовательность освоения языков, т.е. сначала именно Pascal, а потом Delphi или C, C++, является весьма желательной. На вопрос «Какой язык программирования лучше» можно ответить, что для обучения начинающим лучше всего подойдет Паскаль (Pascal).
Для разработки мультфильмов и анимации была создана специальная программа — Adobe (Macromedia) Flash. Также Flash используют при разработке сайтов и для создания компьютерных игр. Язык, применяемый во Flash, — ActionScript. Он получил огромную популярность в наши дни, так как используется во всех современных интернет-проектах.
Сайты, социальные сети и другие ресурсы интернета разрабатывались с помощью нескольких языков программирования. Самые основные — HTML, JavaScript.
HTML является сокращением от англ. HyperText Markup Language и переводится как «язык разметки гипертекста». С его помощью создается большинство веб-страниц. Знание HTML значительно упрощает работу со своим блогом или сайтом, но не является при этом обязательным.
Более совершенные и функциональные (но более сложные) языки, чем HTML, — это PHP, Ajax, SQL.
Для разработки игр и программ на телефоны используются, в основном, два языка — Java и C++. Про C++ мы уже говорили, а Java является языком программирования, созданным на основе C++.
Для создания 3D игр и фильмов используют язык Python. Он даёт огромнейший спектр возможностей для управления 3D графикой.
Язык Фортран был разработан для сложных математических вычислений, создан в 1954-1957 годах. Слово Fortran произошло от первых букв: FORmula TRANslator, то есть, переводчик формул. Он выполняет математические, инженерные и различные научные задачи и применяется в очень мощных компьютерах.
Как мы видим, программисты разработали языки программирования на все случаи жизни. Многие программисты являются поклонниками какого-то одного языка программирования, но это зависит от личных предпочтений. Создаются всё новые языки, усовершенствуются старые. Именно от функциональности языков программирования зависит будущее компьютерных технологий.
P.S. Статья закончилась, но можно еще прочитать:
Источник: www.compgramotnost.ru
Чем отличаются языки программирования, разметки и скриптовые языки?
Перевод статьи Аншита Шармы «Difference Between Programming, Markup and Scripting Languages».
Разные языки служат разным целям. Именно поэтому их так много. Что вам нужно, так это разобраться, какой тип языков подходит именно для вашей ниши.
Для задач вроде создания Android и iOS-приложений или сногсшибательных веб-шаблонов программисты используют множество языков. Используемые языки должны сообщать системе, что нужно сделать, а также каким образом это должно быть сделано.
Есть три типа языков: языки программирования ( C++, Visual Basic, Java, C#), языки разметки (HTML, XML, CSS) и скриптовые языки (JavaScript, PHP, Python). Все они обладают своим собственным функционалом, несходным с другими. Но в этой статье мы попробуем сравнить их, чтобы понять разницу.
Языки программирования
В общем, язык программирования это набор инструкций, которые говорят компьютерной системе, что она должна выполнить определенную задачу. Этот набор содержит серии шагов, которые система должна пройти, чтобы выдать желаемый результат.
Эти инструкции пишутся программистом (кодером), который хорошо знает такие языки как С, С++, Java и т. п. Программист должен быть знаком со всеми типами структур данных, а также с алгоритмами.
Языки разметки
Назначение языков разметки — представление данных. Языки, связанные с дизайном, такие как HTML и CSS, используются для создания прекрасных и ошеломляющих макетов и веб-шаблонов.
При этом HTML используется для определения данных, а задача CSS – представить эти данные в красивом макете. Так что, если вы увлечены дизайном веб-сайтов (фронтенд-разработкой), то начинать вам нужно с языков разметки.
Скриптовые языки
Скриптовые языки это, собственно, подмножество языков программирования. Они используются в качестве посредников между программами при генерации данных.
Основное назначение скриптового языка – указывать другим программам, что и как выполнять. Это похоже на сценарий, который дают какой-нибудь телезвезде. Он (или она) использует написанные в сценарии диалоги для своего выступления.
Эти языки предназначены для интерпретации, а не компиляции, что подчеркивается их выделением в отдельное подмножество языков программирования. Выполнение скриптов занимает некоторое время, ведь инструкции должны быть сначала интерпретированы, а уж затем запущены.
Таковы основные отличия языков программирования, разметки и скриптовых языков.
Источник: techrocks.ru