Языки программирования, их классификация и развитие

Автор: Пользователь скрыл имя, 07 Января 2012 в 22:52, реферат

Краткое описание

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

Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй цели идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы концепции ее решения можно было выражать прямо и коротко.

Оглавление

1.Введение

1.1. Интерпретаторы

1.2. Компиляторы

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

2.1. Машинно – ориентированные языки

2.1.1. Машинные языки

2.1.2. Языки символического кодирования

2.1.3. Автокоды

2.1.4. Макрос

2.2. Машинно – независимые языки

2.2.1. Машинно – независимые языки

2.2.2. Универсальные языки

2.2.3. Диалоговые языки

2.2.4. Непроцедурные языки

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

3.1. Ассемблер

3.2. Лисп

3.4. Бейсик

3.5. Рефал

3.6. Пролог и Пролог++

3.7. Лекс

3.8. Си

3.8.1. Особенности языка Си

3.8.2. Недостатки языка Си

3.9. Си++

3.9.1. Замечание по проекту языка Си++

4. Заключение

5. Библиография

Файлы: 1 файл

информатика.docx

— 55.23 Кб (Скачать)

  Модификация языка Фортран, появившиеся в 1958 году, получила название Фортран II и содержала понятие подпрограммы и общих переменных для обеспечения связи между сегментами.

  К 1962 году относится появление языка, известного под именем Фортран IV и ставшего наиболее употребительным в настоящее время. К этому же времени относится и начало деятельности комиссии при Американской Ассоциации Стандартов (ASA), которая выработала к 1966 году два стандарта – языки Фортран и базисный (основной) Фортран (BasicFORTRAN). Эти языки приблизительно соответствуют модификациям IV и II, однако базисный Фортран является подмножеством Фортрана, в то время, как Фортран II таковым дляФортрана IV не является. Язык Фортран до сих пор продолжает развиваться и совершенствоваться, оказывая влияние на создание и развитие других языков. Например,Фортран заложен в основу Basic – диалогового языка, очень популярного для решения небольших задач, превосходного языка для обучения навыкам использования алгоритмических языков в практике программирования. Разработан этот язык – Beginner’s All –purpose Symbolic Instruction Code – группой сотрудников Вычислительного центра Дармутского колледжа, штат Нью-Хемпшир созданный в 19…. . Но это уже следующий язык.

  3.4.  Бейсик  

  Как знаменитые гамбургеры, бейсбол и  баскетбол, Бейсик - это продукт Новой Англии. Как я говорил, созданный в 1964г., как язык обучения программированию. Бейсик является общепринятым акронимом от"Beginner's All-purpose Symbolic Insruction Code" (BASIC) -Многоцелевой Символический Обучающий Код для Начинающих".

  Вскоре  как обучаемые, так и авторы программ обнаружили, что Бейсик может делать практически все то, что делает скучный неуклюжий Фортран. А так как Бейсику было легко обучиться и легко с ним работать, программы на нем писались обычно быстрее, чем наФортране. Бейсик был также доступен на персональных компьютерах, обычно он встроен в ПЗУ. Так Бейсик завоевал популярность. Интересно, что спустя 20 лет после изобретенияБейсика, он и сегодня самый простой для освоения из десятков языков общецелевого программирования, имеющихся в распоряжении любителей программирования. Более того, он прекрасно справляется с работой.

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

  Несмотря  на отдельные недостатки Бейсика, никто не будет отрицать, что Кемени и Куртс достигли основной цели: сделать программирование доступнее для большего числа людей.

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

  Более того, с появлением транслятора QuickBasic фирмы Microsoft разработчики получили возможность строить на Бейсике приложения из раздельно откомпилированных модулей, некоторые из которых могут быть написаны на других языках. Теперь, как и в случае других ведущих языков программирования, разработчик имеет выбор из нескольких промышленных библиотек подпрограмм, которые содержат готовые решения для распространенных задач программирования.

  3.5.          Рефал   

  Несомненно  надо рассказать и о некоторых  языках программирования созданных  у нас на родине. Один из таких  языков является Рефал, разработанный у нас в России (СССР), в 1966г. ИПМ АН СССР. Этот язык прост и удобен для описания манипуляций над произвольными текстовыми объектами.

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

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

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

  Определенной  спецификой обладают и переменные типа «выражения» – имеется в виду их способность удлиняться при отождествлении. Правильное использование переменных этого типа также позволяет значительно  повысить эффективность Рефал – программы.

  3.6.       Пролог и Пролог ++

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

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

  Все свойства языка по-прежнему доступны программистам. Следовательно, Пролог ++можно отнести к группе гибридных языков, представителями которой считаются Object Pascal и C++. Расширение Пролог ++ поддерживает все свойства, присущие обычно объектно-ориентированным языкам: концепции объектов и классов, единичное и многократное наследование, разбиение на подклассы и передачу сообщений. Поддерживаются также некоторые усовершенствованные свойства, существующие в таких языках, как C++ иSmalltalk, включая общие и частные методы.

  Интересным  свойством является поддержка в  языке программирования с управлением  данными. Эта техника, которая может  быть еще названа программированием, "управляемым событиями", используется в большинстве языков объектно-ориентированного программирования, особенно в тех, которые  разработаны для машин с интерфейсом, управляемым "мышью". 

  Объектно-ориентированная  программа реагирует на события, которые определяют поток управления. В Прологе ++ программирование с управлением данными достигается при помощи концепции демонов. Демон представляет собой объект, методы которого вызываются в случае определенных событий и могут быть таким образом использованы для поддержки программирования с управлением данными.  

  Сам язык основан на концепции передачи сообщений. Программа на Прологе ++ строится вокруг множества объектов Пролога ++, которые обмениваются сообщениями. В этом смыслеПролог ++ ближе к чистому объектно-ориентированному языку, такому, как Smalltalk, чемC++ или Object Pascal. Определения объектов строятся исходя из вызовов 

  Open_Object [имя_объекта] и Close_Object [имя_объекта], а методы определяются практически так же, как в других объектно-ориентированных языках. Для задания наследования можно явным образом указать, какой метод какого объекта должен наследоваться, что является необходимым для многократного наследования.

  3.7.         Лекс

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

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

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

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

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

  3.8. Cи

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

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

  3.8.1.     Особенности языка Си  

  Язык Си имеет свои существенные особенности, давайте перечислим некоторые из них:

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

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

Информация о работе Языки программирования, их классификация и развитие