Файл: Современные языки программирования (История и эволюция языков программирования).pdf
Добавлен: 28.03.2023
Просмотров: 517
Скачиваний: 4
СОДЕРЖАНИЕ
Глава 1. История и эволюция языков программирования
1.1. Основные понятия и определения
1.2. Парадигмы языков программирования
1.3. История и поколения языков программирования
Глава 2. Классификация языков программирования
2.1. Языки программирования низкого и высокого уровня
2.1.1 Процедурно-ориентированные
2.1.2 Проблемно-ориентированные
2.1.3 Объектно-ориентированные
д) Prolog++ (~ Prolog).2.2. Современные языки и системы программирования
– Создавать законченные приложения для Windows самой различной направленности: от чисто вычислительных и логических, до графических и мультимедиа.
– Быстро создавать (даже начинающим программистам) профессионально выглядящий оконный интерфейс для любых приложений.
– Создавать мощные системы работы с локальными и удаленными базами данных.
– Создавать справочные системы (файлы .hlp) для своих приложений и мн. др.
Delphi – чрезвычайно быстро развивающаяся система. Первая версия – Delphi 1.0 была выпущена в феврале 1995 г. А затем новые версии выпускались ежегодно. Большинство версий Delphi выпускается в нескольких вариантах: Standart – стандартном, Professional – профессиональном, Client/Server – клиент/сервер, Enterprise – разработка баз данных предметных областей. Различаются варианты в основном разным уровнем доступа к системам управления базами данных. Последние варианты - Client/Server и Enterprise, в этом отношении наиболее мощные. Delphi - это комбинация нескольких важнейших технологий:
- Высокопроизводительный компилятор в машинный код.
- Объектно-ориентированная модель компонент.
- Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов.
- Масштабируемые средства для построения баз данных.
Fortran. Одним из первых и наиболее удачных компиляторов стал язык Фортран, разработанный фирмой IBM. Профессор Дж. Букс и группа американских специалистов в области программирования в 1954 году опубликовало первое сообщение о языке. Дословно, название языка FORmulaeTRANslation – преобразование формул. Среди причин долголетия Фортрана (а он один из самых распространенных языков в мире), можно отметить простую структуру, как самого Фортрана, так и предназначенных для него трансляторов [6]. Программа на Фортране записывается в последовательности предложений или операторов (описание некоего преобразования информации), и оформляется по определенным стандартам. Эти стандарты накладывают ограничения, в частности, на форму записи и расположения частей оператора в строке бланка для записи операторов. Программа, записанная на Фортране, представляет собой один или несколько сегментов (подпрограмм) из операторов. Сегмент, управляющий работой всей программы в целом, называется основной программой. Фортран был задуман для использования в сфере научных и инженерно-технических вычислений. Однако на этом языке легко описываются задачи с разветвленной логикой (моделирование производственных процессов, решение игровых ситуаций и т.д.), некоторые экономические задачи и особенно задачи редактирования (составление таблиц, сводок, ведомостей и т.д.). Модификация языка Фортран, появившиеся в 1958 году, получила название Фортран II и содержала понятие подпрограммы и общих переменных для обеспечения связи между сегментами. К 1962 году относится появление языка, известного под именем Фортран IV и ставшего наиболее употребительным в настоящее время. К этому же времени относится и начало деятельности комиссии при Американской Ассоциации Стандартов (ASA), которая выработала к 1966 году два стандарта – языки Фортран и базисный (основной) Фортран (BasicFORTRAN). Эти языки приблизительно соответствуют модификациям IV и II, однако базисный Фортран является подмножеством Фортрана, в то время, как Фортран II таковым для Фортрана IV не является. Язык Фортран до сих пор продолжает развиваться и совершенствоваться, оказывая влияние на создание и развитие других языков. Например, Фортран заложен в основу Basic – диалогового языка, очень популярного для решения небольших задач, превосходного языка для обучения навыкам использования алгоритмических языков в практике программирования.
С и С++. Язык "C" является универсальным языком программирования. Он тесно связан с операционной системой "UNIX" , так как был развит на этой системе и так как "UNIX" и ее программное обеспечение написано на "C" [15]. Сам язык , однако, не связан с какой-либо одной операционной системой или машиной; и хотя его называют языком системного программирования, так как он удобен для написания операционных систем, он с равным успехом использовался при написании больших вычислительных программ, программ для обработки текстов и баз данных. Язык "C" - это язык относительно "низкогоуровня". В такой характеристике нет ничего оскорбительного; это просто означает, что "C" имеет дело с объектами того же вида, что и большинство ЭВМ, а именно, с символами, числами и адресами. Они могут объединяться и пересылаться посредством обычных арифметических и логических операций, осуществляемых реальными ЭВМ. В языке "C" отсутствуют операции, имеющие дело непосредственно с составными объектами, такими как строки символов, множества, списки или с массивами, рассматриваемыми как целое. Здесь, например, нет никакого аналога операциям PL/1, оперирующим с целыми массивами и строками. Язык не предоставляет никаких других возможностей распределения памяти, кроме статического определения и механизма стеков, обеспечиваемого локальными переменных функций; здесь нет ни "куч" (HEAP), ни "сборки мусора", как это предусматривается в АЛГОЛЕ-68. Наконец, сам по себе "C" не обеспечивает никаких возможностей ввода-вывода: здесь нет операторов READ или WRITE и никаких встроенных методов доступа к файлам. Все эти механизмы высокого уровня должны обеспечиваться явно вызываемыми функциями. Аналогично, язык "C" предлагает только простые, последовательные конструкции потоков управления: проверки, циклы, группирование и подпрограммы, но не мультипрограммирование, параллельные операции, синхронизацию или сопрограммы. Хотя отсутствие некоторых из этих средств может выглядеть как удручающая неполноценность ("выходит, что я должен обращаться к функции, чтобы сравнить две строки символов?!"), но удержание языка в скромных размерах дает реальные преимущества. Так как "C" относительно мал, он не требует много места для своего описания и может быть быстро выучен. Компилятор с "C" может быть простым и компактным. Кроме того, компиляторы легко пишутся; при использовании современной технологии можно ожидать написания компилятора для новой ЭВМ за пару месяцев и при этом окажется, что 80 процентов программы нового компилятора будет общей с программой для уже существующих компиляторов. Это обеспечивает высокую степень мобильности языка. Поскольку типы данных и структуры управления, имеющиеся в "C", непосредственно поддерживаются большинством существующих ЭВМ, библиотека, необходимая во время прогона изолированных программ, оказывается очень маленькой. На PDP -11, например, она содержит только программы для 32-битового умножения и деления и для выполнения программ ввода и вывода последовательностей. Конечно, каждая реализация обеспечивает исчерпывающую, совместимую библиотеку функций для выполнения операций ввода-вывода, обработки строк и распределения памяти, но так как обращение к ним осуществляется только явно, можно , если необходимо, избежать их вызова; эти функции могут быть компактно написаны на самом "C".
Java. Сегодня Всемирная сеть - это среда информационного обмена для миллионов людей. Они размещают текст, видео, звук, и информацию, и все более и более, они усложняют свои страницы, делая их интерактивными в сети. JavaScript - это новый язык программирования, используемый в составе страниц HTML для увеличения функциональности и возможностей взаимодействия с пользователями. Он был разработан фирмой Netscape в сотруднечестве с Sun Microsystems на базе языка Sun's Java [11].С помощью JavaScript на Web-странице можно сделать то, что невозможно сделать стандартными тегами HTML. Скрипты выполняются в результате наступления каких-либо событий, инициированных действиями пользователя. Создание Web-документов, включающих программы на JavaScript, требует наличие текстового редактора и подходящего браузера. Некоторые просмоторщики включают в себе встроенные редакторы, поэтому необходимость во внешнем редакторе отпадает. Несмотря на отсутствие прямой связи с языком Java, JavaScript может обращаться к внешним свойствам и методам Java- апплетов, встроенных в страницу HTML. Разница сводится к тому, что апплеты существуют вне браузера, в то время как программы JavaScript могут работать только внутри браузера. На первой взгляд кажется, что найти информацию по JavaScript несложно. Сначала создается впечатление, что ее можно увидеть везде: на сервере Natscape, в виде электронных руководств и примеров, во многих других местах. Тем не менее разыскать информацию об объектах, операторах, цветах и всем прочем в одном источнике, чтобы она была всегда под рукой, трудно.
2.3. Проблемы и перспективы развития
Через пять лет у нас будет один суперязык программирования, только мы не можем установить начало этого пятилетнего периода.
Алан Дж. Перлис
Тезисно сформулируем основные проблемы и перспективы языков программирования:
Во-первых, следует отметить, что новые языки программирования будут появляться и дальше. Рано или поздно у нас возникнут кардинально новые мысли о программировании и, согласно гипотезе Хурфа-Сэпира, они потребуют новых языков.
Во-вторых, следует обратить внимание на грамотное воплощение идей, заложенных в языках. Идея может быть хорошей, даже отличной, но ее решение и воплощение в конкретном языке - неудачным и безобразным.
Некоторые выводы о распространении новых языков можно сделать на основе языка Java:
- Продвижение языка Java происходило за счет мощной рекламы, а не из-за достоинств самого языка.
- На широкое распространение в наше время могут претендовать только те языки, которые поддержаны крупными фирмами, а не те, которые являются лучшими.
- Время распространения и становления языка программирования (для получивших известность языков) составляет в среднем от 3 до 10 лет. В случае Java язык получил широкое распространение за один год.
В третьих, в условиях застоя в развитии языков программирования есть смысл тщательно проанализировать все полезные накопленные за это время идеи. Существуют попытки создания единой семантики современных языков программирования, в каком-то смысле опять приводящие к идее "универсального" языка [1].
В четвертых, Интернет требует языковых средств и подходов, обеспечивающих правильное взаимодействие большого числа независимо разработанных программ.
В пятых, использование структур и данных, которые раньше бы считались неприемлемыми из-за их неэффективности, сейчас вполне допустимо и может привести к новой организации языков.
Общий, несколько обнадеживающий итог звучит так. Ряд известных фирм и компаний (например, Microsoft, Sun Microsystems и т. п.) постепенно приходит к идеям, заложенным несколько десятков лет назад командой под руководством Никлауса Вирта.
Выводы ко 2 главе
В главе рассмотрены основные и самые популярные классификации языков программирования и более подробно описаны некоторые их них. На данный момент, действительно, нет более-менее чёткой классификации языков программирования, охватывающей все признаки и рассказывающей о «переплетениях» различных классификаций между собой. Также выделены основные проблемы и перспективы развития в ближайшем будущем.
Заключение
В заключении хочется отметить, что языки программирования — это не просто инструментальное средство; это тот «материал», из которого создается программное обеспечение, то, что мы видим на наших экранах большую часть дня. Язык программирования — один из наиболее, а не наименее важных факторов, которые влияют на окончательное качество программной системы. К сожалению, слишком у многих программистов нет достаточных языковых навыков. Они страстно любят свой «родной» язык программирования и не способны ни проанализировать и сравнить конструкции языка, ни оценить преимущества и недостатки современных языков и языковых понятий.
Изобретение языка программирования высшего уровня позволило нам общаться с машиной, понимать её. Развилась наука программирования с того времени, как появились языки программирования, а ведь язык программирования высшего уровня, судя по всему ещё младенец. Но если обратить внимание на темпы роста и развития новейших технологий в области программирования, то можно предположить, что в ближайшем будущем, человеческие познания в этой сфере, помогут произвести на свет языки, умеющие принимать, обрабатывать и передавать информации в виде мысли, слова, звука или жеста. Возможно, они будут называться «языками программирования "высочайшего" уровня». Возможно, концепция решения этого вопроса проста, а ближайшее будущее этого проекта уже не за горами.
Каждый язык обладает своими уникальными способностями и преимуществами над другими языками, но реальность такова, что требуемый функционал в полном объеме не содержится ни в одном языке. В таком случае при решении задачи используют связку из нескольких языков, которые в совокупности удовлетворяют предложенным требованиям. Такая межъязыковая связь может быть реализована с использованием нескольких различных техник.
Часто можно увидеть в программном коде драйверов на C вставки, сделанные на ассемблере. Так происходит потому, что некоторые места в программе являются критичными по времени выполнения или код требует прямого взаимодействия с регистрами процессора.
Другой вариант использования нескольких языков, это написание различных модулей. При этом модули компилируются под определенную систему и используются в программе связанно. Этот подход можно встретить в интерпретаторе языка python, в котором некоторые модули написаны непосредственно на C, а некоторые - на промежуточном языке для PVM. Такой подход используется если среда разработки не поддерживает вставки на других языках.
Список использованной литературы
1. Андреев А. / Эволюция современных языков программирования // Мир ПК. – 2001. – № 3
2. Бен-Ари М. Языки программирования. Практический сравнительный анализ - М.: Мир, 2000.
3. Быканов Н.П. Классификация языков программирования // Международный журнал гуманитарных и естественных наук. 2016. №1.
4. Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989
5. Кауфман В. Ш. Языки программирования. Концепции и принципы - 2-е изд. - Москва : ДМК Пресс, 2010.
6. Пратт Т. Языки программирования: разработка и реализация, 1979 г.
7. Себеста Р. Основные концепции языков программирования = Concepts of Programming Languages / Пер. с англ. – 5-е изд. – М.: Вильямс, 2001. – 672 с.
8. Тузов В. А. Языки представления знаний. - Л.: Изд-во ЛГУ. - 1990.
9. Турчин В. Ф. Феномен науки. Кибернетический подход к эволюции. — Изд. 2-е — М.: Словарное издательство ЭТС. — 2000. — 368 с.
10. Хротко Г. Языки программирования высокого уровня. 1982 г.
11. Эферган М. Java: справочник. - QUE Corporation, 1997, Издательство "Питер Ком", 1998
12. Justin J.Crom. BASIC Face-off. PC Tech Journal, September 1987, 136 Перевод: Лопухов В.Н.
13. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. - М.: Наука, 1988