Letysite.ru

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

Эволюция языков программирования

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

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

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

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

Машинный язык.

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

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

Ассемблер.

В начале 1950-х годов была осуществлена идея использования символьных имен вместо адресов данных и замены цифровых кодов операций на мнемонические (словесные) обозначения. Язык программирования, реализующий данный подход, получил название Ассемблер (от англ. assembler — сборщик).

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

Транслятор — это программа, преобразующая текст, представленный на одном из языков программирования, в эквивалентную программу на машинном языке.

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

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

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

Дальнейшая эволюция языков программирования привела к появлению языков высокого уровня, что позволило отвлечься от системы команд конкретного типа процессора. Ниже приведена диаграмма важнейших первых языков (источник: Б. Страуструп «Программирование: принципы и практика использования С++»)

Важное значение для развития высокоуровневых языков программирования имела разработка во второй половине 1950-х годов трех языков – Fortran, COBOL, Lisp. Философия, стоящая за этими языками, заключается в создании высокоуровневой системы обозначений, облегчающей программисту написание программ.

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

Fortran ( Formula Translation — трансляция формул ) — был разработан в 1956 году сотрудниками компании IВM под руководством Джона Бэкуса. Появление Fortran — одно из наиболее значительных событий в истории языков программирования.

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

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

COBOL ( Common Business-Oriented Language — язык программирования для коммерческих и деловых задач ) был разработан комитетом CODASYL в 1959-60 годах по инициативе Министерства обороны США и группы основных производителей компьютеров для обработки бизнес-данных. Основной упор в этом языке был сделан на манипуляции данными: копирование, хранение и поиск, вывод на печать (отчеты).

Язык программирования Lisp.

Lisp ( LISt Processing – обработка списков ) был разработан в 1958 году Джоном Маккарти для обработки связанных списков и символьной информации.

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

Copyright © 2014-2018, Урок информатики
Все права защищены

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

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

В пятидесятые годы двадцатого века с появлением компьютеров на электронных лампах началось бурное развитие языков программирования. Компьютеры, стоившие в то время значительно дороже, чем разработка любой программы, требовали высокоэффективного кода. Такой код разрабатывался вручную на языке Ассемблер . В середине 50-х годов под руководством Джона Бэкуса для фирмы IBM был разработан алгоритмический язык программирования FORTRAN . Несмотря на то, что уже существовали разработки языков, выполняющие преобразование арифметических выражений в машинный код, создание языка FORTRAN (FORmula TRANslator), предоставляющего возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода, стало точкой отсчета эры алгоритмических языков программирования.

К языку FORTRAN предъявлялись требования cоздания высокоэффективного кода. Поэтому многие конструкции языка первоначально разрабатывались с учетом архитектуры IBM 407. Успех разработки этого языка привел к тому, что производители других вычислительных систем стали создавать свои версии трансляторов. С целью некоторой возможной на тот момент унификации языка язык FORTRAN IV, разработанный в 1966 году, стал первым стандартом, именуемым FORTRAN 66.

Как альтернатива языку FORTRAN , первоначально ориентированному на архитектуру IBM , под руководством Питера Наура в конце 50-х годов был разработан язык ALGOL ( ALGOrithmic Language ). Основной целью, преследуемой разработчиками этого языка, была независимость от конкретной архитектуры вычислительной системы. Кроме того, создатели языка ALGOL стремились разработать язык, удобный для описания алгоритмов и применяющий систему обозначений, близкую к той, что принята в математике.

Языки FORTRAN и ALGOL были первыми языками, ориентированными на программирование вычислений.

Язык PL 1, первые версии которого появились в начале 60-х годов, был первоначально ориентирован на IBM 360 и расширял возможности языка FORTRAN некоторыми средствами языка COBOL , разработанного в эти же годы. Несмотря на определенную популярность языка PL/I у программистов, работавших на компьютерах IBM и машинах серии ЕС, в настоящее время он представляет чисто теоретический интерес.

В конце 60-х годов под руководством Найарда и Дала был разработан язык Simula-67, использующий концепцию пользовательских типов данных. Фактически это первый язык, применяющий понятие классов.

В середине 70-х годов Вирт предложил язык Pascal , который сразу стал широко использоваться. В это же время по инициативе Министерства обороны США началась работа по созданию языка высокого уровня, получившего название Ada – в честь Ады Лавлейс, программистки и дочери лорда Байрона. Создание языка началось с определения требований и выработки спецификаций. Над проектом работали четыре независимые группы, но все они использовали как основу язык Pascal . В начале 80-х годов был разработан первый промышленный компилятор языка Ada .

Универсальный язык программирования С был разработан в середине 70-х годов Денисом Ритчи и Кеном Томпсоном. Этот язык стал популярным языком системного программирования и в свое время использовался для написания ядра операционной системы UNIX . Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году. Язык С лег в основу разработки языков программирования C++ и Java .

Наряду с алгоритмическими языками параллельно развивались и языки, предназначаемые для обработки деловой информации, а также языки искусственного интеллекта. К первым относится язык COBOL (COmmon Business Oriented Language ), а ко вторым – языки LISP ( LISt Processing ) и Prolog. Язык LISP , разработанный в 60-х годах под руководством Дж. Маккарти, был первым функциональным языком обработки списков, который нашел широкое применение в теории игр.

С появлением персональных компьютеров языки стали составными частями интегрированных сред разработки. Появились языки, применяемые в различных офисных программах, например VBA ( Visual Basic for Application ).

В 90-х годах с распространением сети Интернет расширяется возможность распределенной обработки данных, что отражается и на развитии языков программирования. Появляются языки, ориентированные на создание серверных приложений, такие как Java , Perl и PHP , языки описания документов – HTML и XML . Традиционные языки программирования С++ и Pascal также претерпевают изменения: под языком программирования начинает пониматься не только функциональность самого языка, а также библиотеки классов, предоставляемые средой программирования. Акцент со спецификации самих языков программирования переносится на стандартизацию механизмов взаимодействия распределенных приложений. Появляются новые технологии – COM и CORBA , специфицирующие взаимодействие распределенных объектов.

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

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

  • научные вычисления (языки C++, FORTRAN, Java);
  • системное программирование (языки C++, Java);
  • обработка информации (языки C++, COBOL, Java);
  • искусственный интеллект (LISP, Prolog);
  • издательская деятельность (Postscript, TeX);
  • удаленная обработка информации (Perl, PHP, Java, C++);
  • описание документов (HTML, XML).

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

Читать еще:  Айфон 6 выдает ошибку 4013

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

Тема №4 Язык программирования: эволюция, классификация

(О.Л. Голицина, И.И. Попов «Основы алгоритмизации и программирования» Стр. 38-45)

Эволюция Языков программирования

В развитии инструментального программного обеспечения (т.е. про­граммного обеспечения, служащего для создания программных средств в любой проблемной области) рассматривают пять поколений языков про­граммирования (ЯП). Языки про­граммирования как средство общения че­ловека с ЭВМ от поколения к поколению улучшали свои характеристики, становясь, все более доступными в освоении непрофессионалам.

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

Поколения ЯП

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

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

Третье поколение ЯП начинается с появления в 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&А, НАL и др.).

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

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

Компьютер не понимает естественного языка человека, а понимает только свой язык — машинный код. Что касает­ся языка программирования, то он с помощью фиксирован­ных систем обозначений и правил позволяет описывать ал­горитмы и структуры данных, которые впоследствии будут переведены транслятором в машинный код.

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

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

Следующая группа — языки программирования высокого уровня. Это языки, которые допускают описание задачи в наглядном, легко воспринимаемом виде. Их отличительной особенностью является ориентация не на систему команд той или иной ЭВМ, а на систему инструкций, характерных для записи алгоритмов определенного класса. К языкам програм­мирования высокого класса относятся Бейсик, Фортран, Ал­гол, Паскаль, Си и др.

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


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

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

алфавит — совокупность символов, отображаемых на устройствах печати и экранах и/или вводимых с клавиатуры терминала.

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

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

семантика — смысловое содержание конструкций, предложений языка, семантический анализ — это проверка смысловой правильности конструкции. Например, если мы в выражении используем перемен­ную, то она должна быть определена ранее по тексту программы, а из этого определения может быть получен ее тип. Исходя из типа пере­менной, можно говорит о допустимости операции с данной перемен­ной. Семантические ошибки возникают при недопустимом использова­нии операций, массивов, функций, операторов и пр.

Читать еще:  Программирование графики на java

Трансляторы

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

Существует три вида трансляторов: интерпретаторы, ком­пиляторы и ассемблеры.

Интерпретатор — транслятор, переводящий текст про­граммы поэтапно (покомандно) и сразу же (то есть парал­лельно) выполняющий оттранслированную команду исход­ной программы.

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

Схематически работу компилятора иллюстрирует рис. 1.6.

Цифрой 1 на схеме обозначен блок синтаксического кон­троля текста программы, цифрой 2 — генератор машинного кода.

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

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

Все трансляторы, независимо от их вида, решают следу­ющие основные задачи:

+ выполняют анализ и проверяют синтаксис транслируе­мой программы;

+ генерируют машинный код программы;

+ распределяют память для выходной программы.

Лекция 1. Эволюция языков программирования (Прикладное программирование-ПП)

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

Лекция 1. Эволюция языков программирования

1. Языки программирования

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

3. Объектно-ориентированное программирование (ООП)

4. Языки программирования баз данных.

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

Языки программирования — э то искусственные языки. Они отличаются от естественных ограниченным, достаточно малым числом слов, значение которых понятно компьютеру (транслятору), и очень строгими правилами записи команд (операторов). Совокупность требований для записи команд образуют синтаксис языка, а смысл каждой команды – семантику языка.

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

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

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

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

Процедурное программирование — есть отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 1940-х годах.

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

Основная идея процедурного программирования — использование памяти для хранения данных.

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

Различают такие языки процедурного программирования:

Язык Фортран создан в начале 50-х годов 20-го века для программирования научно-технических задач;

Кобол – создан в конце 60-х годов 20-го века для решения задач обработки больших объемов данных, хранящихся на различных носителях данных;

Алгол (1960 год) – это многоцелевой расширенный язык программирования. В нем впервые введены понятия «блочная структура программы» и «динамическое распределение памяти»;

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

Все перечисленные выше языки были ориентированы на различные классы задач, но они в той или иной мере были привязаны к конкретной архитектуре ЭВМ.

В 1963-1966гг был создан многоцелевой универсальный язык PL -1. Этот язык хорошо приспособлен для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения.

Язык Паскаль ( PASCAL ) (1968-1971гг)- язык процедурного программирования наиболее популярный для ПК, который и в настоящее время успешно применяется. В основу языка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему). К основным принципам, которыми обладает Паскаль, можно отнести: а) Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных; б) Программирование «сверху-вниз», когда задача делится на простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз.

К языкам процедурного программирования можно отнести язык АДА (1979 г) Язык назван в честь первой программистки Ады Лавлейс — дочери Байрона. Его отличает модульность конструкций.

Язык СИ (начало 70-х годов) также относится к языкам процедурного программирования. Первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Одной из особенностей языка СИ является то, что различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования. Кроме того, в языке СИ отсутствует понятие процедуры , а использование подпрограмм основано на понятии функции , которая может сочетать в себе возможности процедуры. С одной стороны, по набору управляющих конструкций и структур данных его можно отнести к языкам высокого уровня, а с другой – он имеет набор средств прямого обращения к функциональным узлам компьютера, а это означает, что его можно использовать как операционный язык.

3 .Объектно-ориентированное программирование (ООП)

Объектно-ориентированное программирование (ООП) — это метод программирования, при использовании которого главными элементами программ являются объекты .

В языках программирования понятие объекта реализовано как совокупность свойств (структур данных, характерных для данного объекта), методов их обработки (подпрограмм изменения их свойств) и событий, на которые данный объект может реагировать и, которые приводят, как правило, к изменению свойств объекта.

Наиболее современными языками программирования являются С++ и Java . С середины
90-х годов многие объектно–ориентированные языки реализуются как системы визуального проектирования , в которых интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов.

Язык VBA (Visual Basic for Application) – язык приложений Microsoft Office (Excel, Word, Power Point и др ).

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

4. Языки программирования баз данных.

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

создание, преобразование и удаление таблиц в БД;

поиск, отбор, сортировка по запросам пользователя;

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

Для обработки больших массивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL ( Structured Query Language ). Язык SQL – это стандартный язык работы с реляционными базами данных.

Сегодня в мире ведущие производители СУБД: Microsoft ( SQL Server ), IBM ( DB 2), Oracle , Software AG ( Adabas ), Informix и Sybase . Практически в каждой СУБД имеется свой встроенный язык работы с БД. Так, например, в Oracle имеется встроенный язык PL / SQL , в Informix – INFORMIX 4 GL , в Adabas – Natural и т.д.

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

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

Язык HTML ( Hyper Text Markup Language ) – универсальный язык разметки гипертекста, используемый для подготовки Web документов для Internet . Язык позволяет форматировать текст, добавлять графические образы, работать с таблицами и организовывать связь одного документа с другим с помощью механизма гиперссылок.

Язык Perl (80 г) содержит многочисленные функции работы со строками, массивами, всевозможные средства преобразования данных.

Язык PHP (1995-1997гг) обладает средствами доступа к БД и используется создателями динамических сайтов во всем мире.

Язык Tcl / Tk (конец 80-х годов) состоит из мощных команд, предназначенных для работы с абстрактными не типизированными объектами и позволяет создавать программы с графическим интерфейсом.

Язык VRML (1994г) создан для организации виртуальных трехмерных интерфейсов в Интернете.

Читать еще:  Usb ошибка драйвера

Язык XML . С 1996г идет работа над созданием универсального языка структуры документов. Может стать заменой языка HTML .

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

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

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

Чтобы понимать тенденции развития ЯП, нужно знать движущие силы их эволюции. Для выяснения этого вопроса будем рассматривать ЯП с различных точек зрения.

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

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

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

4) В-четвертых, совершенствование самих ЭВМ приводит к необходимости создания языков, максимально реализующих новые возможности ЭВМ.

5) В-пятых, программы являются интеллектуальным продуктом, который нужно нака­пливать и приумножать. Но программы, как и технические изделия, обладают свойст­вом морального старения, одной из причин которого является их зависимость от типа ЭВМ и операционной среды. Поэтому ЯП должен обеспечивать продолжительный жизненный цикл программы. Стремление к этому и является движущей силой развития ЯП.

ЯП можно классифицировать по следующим признакам:

1) По степени ориентации на специфические возможности ЭВМ ЯП делятся на:
— машинно-зависимые;
— машинно-независимые.
К машинно-зависимым ЯП относятся машинные языки, ассемблеры и автокоды, использующиеся в системном программировании. Программа на машинно-не­зависимом ЯП после трансляции на машинный язык становится машинно-зависимой.

2) По степени детализации алгоритма получения результата ЯП делятся на:
— языки низкого уровня;
— языки высокого уровня;
— языки сверхвысокого уровня.
3) По степени ориентации на решение определенного класса задач:
— проблемно-ориентированные;
— универсальные.
4) По возможности дополнения новыми типами данных и операциями:
— расширяемые;
— нерасширяемые.
5) По возможности управления реальными объектами и процессами:
— языки систем реального времени;
— языки систем условного времени.

6) По способу получения результата:
— процедурные;
— непроцедурные.
7) По типу решаемых задач:
— языки системного программирования;
— языки прикладного программирования.

8) Непроцедурные языки по типу встроенной процедуры поиска решений:
— реляционные;
— функциональные;
— логические.
Специализированные языки.

Фортран (1954 год создания)

Ada (1983) и Ada95 (1995)

В 1954 году в недрах корпорации IBM группой разработчиков во главе с Джоном Бэкусом (John Backus) был создан язык программирования Fortran.

Значение этого события трудно переоценить. Это первый язык программирования высокого уровня. Впервые программист мог по-настоящему абстрагироваться от осо­бенностей машинной архитектуры. Ключевой идеей, отличающей новый язык от ас­семблера, была концепция подпрограмм. Напомним, что это современные компью­теры поддерживают подпрограммы на аппаратном уровне, предоставляя соответст­вующие команды и структуры данных (стек) прямо на уровне ассемблера, в 1954 же году это было совершенно не так. Поэтому компиляция Fortran’а была процессом от­нюдь не тривиальным. Кроме того, синтаксическая структура языка была достаточно сложна для машинной обработки в первую очередь из-за того, что пробелы как син­таксические единицы вообще не использовались. Это порождало массу возможно­стей для скрытых ошибок, таких, например:

В Фортране следующая конструкция описывает «цикл for до метки 10 при изменении индекса от 1 до 100»:
DO 10 I=1,100
Если здесь заменить запятую на точку, то получится оператор присваивания:
DO10I = 1.100
Говорят, что такая ошибка заставила ракету взорваться во время старта.

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

В 1957 году была предпринята попытка создания языка для описания математической обработки данных. Язык был назван APL (Application Programming Language). Его от­личительной особенностью было использование математических символов (что за­трудняло применение на текстовых терминалах; появление графических интерфей­сов сняло эту проблему) и очень мощный синтаксис, который позволял производить множество нетривиальных операций прямо над сложными объектами, не прибегая к разбиению их на компоненты. Широкому применению помешало, как уже отмечалось, использование нестандартных символов как элементов синтаксиса.

6.3. Lisp и ему подобные языки

В 1958 году появился язык Lisp — язык для обработки списков. Получил достаточно широкое распространение в системах искусственного интеллекта. Имеет несколько потомков: Planner (1967), Scheme (1975), Common Lisp (1984). Многие его черты были унаследованы современными языками функционального программирования.

В 1960 году был создан язык программирования Cobol.

Он задумывался как язык для создания коммерческих приложений, и он стал тако­вым. На Коболе написаны тысячи прикладных коммерческих систем. Отличительной особенностью языка является возможность эффективной работы с большими масси­вами данных. Популярность Ко­бола столь высока, что даже сейчас, при всех его недостатках (по структуре и за­мыслу Кобол во многом напоминает Фортран), появляются новые его диалекты и реа­лизации. Так появилась реализация Кобола, совместимая с Microsoft .NET, что потребовало, вероятно, внесения в язык некоторых черт объектно-ориентирован­ного языка.

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

Алгоритмический язык содержит подобные элементы, только слова называют элемен- тарными конструкциями, словосочетания-выражениями, предложения-операторами. Символы, элементарные конструкции, выражения и операторы составляют иерархическую структуру, поскольку элементарные конструк- ции образуются из последовательности символов, выражения-это последо- вательность элементарных конструкций и символов, а оператор-последо- вательность выражений, элементарных конструкций и символов. ОПИСАНИЕ ЯЗЫКА есть описание четырех названных элементов. Описание символов заключается в перечислении допустимых символов языка. Под описанием элементарных конструкций понимают правила их образования. Описание выражений-это правила образования любых выражений, имеющих смысл в данном языке. Описание операторов состоит из рассмотрения всех типов операторов, допустимых в языке. Описание каждого элемента языка задается его СИНТАКСИСОМ и СЕМАНТИКОЙ. Синтаксические определе- ния устанавливают правила построения элементов языка. Семантика опре- деляет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения. СИМВОЛЫ языка-это основные неделимые знаки, в терминах которых пи- шутся все тексты на языке. ЭЛЕМЕНТАРНЫЕ КОНСТРУКЦИИ -это минимальные единицы языка, имеющие самостоятельный смысл. Они образуются из основных символов языка. ВЫРАЖЕНИЕ в алгоритмическом языке состоит из элементарных конс- трукций и символов, оно задает правило вычисления некоторого значе- ния. ОПЕРАТОР задает полное описание некоторого действия, которое необ- ходимо выполнить. Для описания сложного действия может потребоваться группа операторов. В этом случае операторы объединяются в СОСТАВНОЙ ОПЕРАТОР или БЛОК. Действия, заданные операторами, выполняются над ДАННЫМИ. Предложения алгоритмического языка, в которых даются сведения о типах данных, называются ОПИСАНИЯМИ или неисполняемыми операторами. Объединенная единым алгоритмом совокупность описаний и операторов образует ПРОГРАММУ на алгоритмическом языке. В процессе изучения алгоритмического языка необходимо отличать алгоритмический язык от того языка, с помощью которого осуществляется описание изучаемого алгоритмического языка. Обычно изучаемый язык на- зывают просто языком, а язык, в терминах которого дается описание изучаемого языка — МЕТАЯЗЫКОМ.

Ссылка на основную публикацию
Adblock
detector