Файл: Классификация языков программирования высокого уровня.pdf
Добавлен: 25.04.2023
Просмотров: 95
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1 Процедурно-ориентированные языки программирования
1. Процедурно-ориентированные языки программирования
1.1.2 История языка и как зарождался Fortran.
Глава 2 Проблемно-ориентированные языки программирования
Глава3 Объектно-ориентированные языки программирования
3.3.1 Различные языки программирования высокого уровня Common Lisp Object System (CLOS)
C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем (однако, эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET). CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.
Язык С++ в современности является одним из самых востребованных языков во всех сферах деятельности. В программирование очень важно обдавать знаниями С++ или С#.
3.3.1 Различные языки программирования высокого уровня Common Lisp Object System (CLOS)
В начале 80-х годов под воздействием идей объектно-ориентированного программирования возникла серия новых диалектов Lisp, многие из которых были ориентированы на представление знаний. Успех в стандартизации Common Lisp стимулировал попытки стандартизировать объектно-ориентированные диалекты в 1986 году.
Поскольку новый диалект должен был стать надстройкой над Common Lisp, он получил название Common Lisp Object System (Объектная система Common Lisp) или, сокращенно, - CLOS. Серьезное влияние на проект CLOS оказали языки NewFlavors и CommonLoops. После двухлетней работы, в 1988 году была опубликована полная спецификация CLOS.
CLOS должен:
- представлять собой стандартное расширение языка, включающее все наиболее полезные свойства существующей объектно-ориентированной парадигмы;
- обеспечить эффективный и гибкий интерфейс программиста, позволяющий реализовать большинство прикладных задач;
- проектироваться как расширяемый протокол, так, чтобы можно было изменять его поведение, тем самым стимулируя дальнейшие исследования в области объектно-ориентированного программирования.
Ada
В 1983 году под эгидой Министерства Обороны США был создан языкAda. Язык замечателен тем, что очень много ошибок может быть выявлено на этапе компиляции. Кроме того, поддерживаются многие аспекты программирования, которые часто отдаются на откуп операционной системе (параллелизм, обработка исключений). В 1995 году был принят стандарт языка Ada 95, который развивает предыдущую версию, добавляя в нее объекно-ориентированность и исправляя некоторые неточности. Оба этих языка не получили широкого распространения вне военных и прочих крупномасштабных проектов (авиация, железнодорожные перевозки). Основной причиной является сложность освоения языка и достаточно громоздкий синтаксис.
Непосредственными предшественниками Ada являются Pascal и его производные, включая Euclid, Lis, Mesa, Modula и Sue. Были использованы некоторые концепции ALGOL-68, Simula, CLU и Alphard.
Разработчики Ada прежде всего беспокоились о:
- эффективности.
- надежности и эксплуатационных качествах программ;
- программировании как разновидности человеческой деятельности;
Eiffel
Автор Eiffel Бертран Мейер (Bertrand Meyer) создавал не только язык объектно-ориентированного программирование, но и инструмент проектирования программ.
Несмотря на сильное влияние Simula, Eiffel - вполне самостоятельный объектно-ориентированный язык со своей собственной средой разработки.
Eiffel поддерживает динамическое связывание и статическую типизацию, тем самым обеспечивая гибкость интерфейсов классов в сочетании с безопасным использованием типов. В Eiffel есть несколько важных черт, поддерживающих более жесткий стиль программирования, в том числе параметризованные классы, утверждения и исключения. Мейер считает, что обобщенные классы хорошо дополняют наследование, учитывая горизонтальный уровень общности; новые классы на одном уровне иерархии можно создавать, используя тип в качестве параметра, а не плодя практически одинаковые подклассы.
Неотъемлемой частью языка являются пред- и постусловия, то есть утверждения, которые должны выполняться при входе в метод и выходе из него. Нарушение утверждения вызывает исключительную ситуацию. Ее можно перехватить, обработать и попробовать вызвать тот же метод еще раз.
Eiffel поощряет хорошее программирование, добротную спецификацию классов, сильную типизацию и повторное использование, как через наследование, так и через параметризацию. Формальная трактовка исключительных ситуаций позволяет жестко специфицировать интерфейсы классов при реализации.
Eiffel предоставляет законченную среду разработки программ, включая специальный редактор с выделением синтаксиса, генератор документации, библиотеки классов и броузер. Кроме того, поддерживаются средства управления кодом и сборкой программ.
Java
С 1995 года стал широко распространяться новый объектно-ориентированный язык программирования Java, ориентированный на сети компьютеров и, прежде всего, на Internet. Синтаксис этого языка напоминает синтаксис языка C++, однако эти языки имеют мало общего. Java - интерпретируемый на конечной стадии язык: для него определены внутреннее представление (прекомпиляция в байткод - bytecode) и постинтерпретатор этого представления на целевой машине, которые уже сейчас реализованы на большинстве платформ. Постинтерпретатор (виртуальная Java-машина) упрощает отладку программ, написанных на языке Java, обеспечивает их переносимость на новые платформы и адаптируемость к новым окружениям. Он позволяет исключить влияние программ, написанных на языке Java, на другие программы и файлы, имеющиеся на новой платформе, и тем самым обеспечить безопасность выполнения этих программ для операционной среды (не нарушать ее работоспособность, что совершенно не определяет безопасности на прагматическом, человеческом уровне, которая как раз страдает от возможности внедрения чужеродных Java-кодов в ОС: троянов, червей и пр.). Положительные свойства технологииJava позволяют использовать ее для программ, распространяемых по сетям (в частности, по сети Internet).
Visual Basic .NET
VisualBasic.NET (VB.NET) — это объектно-ориентированный язык программирования, который можно рассматривать как очередной виток эволюции Visual Basic (VB), реализованный на платформе Microsoft .NET.
В отличие от «классического» VB, VB.NET — полностью объектно-ориентированный язык программирования, поддерживающий полиморфизм, наследование и другие ключевые возможности ООП.
VB.NET не имеет обратной совместимости с VB6. Открытие проектов старых версий (*.vbp) возможно только после предварительной конвертации их в формат VB.NET специальным мастером (Migration Wizard).
Важнейшими изменениями в VB.NET являются:
поддержка концепций объектно-ориентированного программирования;
компиляция в байт-код (intermediate language, IL), исполняемый с помощью виртуальной машины common language runtime (CLR);
использование всего набора объектных библиотек, входящих в .NET Framework, включающих мощные средства по работе с формами (Windows Forms), базами данных (ADO.NET), графикой (GDI+), средствами обеспечения безопасности, веб-страницами (ASP.NET) и т. п.;
появление жёсткой проверки типов (Option Strict);
поддержка свободной многопоточности;
поддержка структурной обработки исключений (structurized exception handling, SEH).
С переходом на платформу .NET, изменилась сама парадигма программирования (и это наиболее важное изменение)
Smalltalk
Язык Smalltalk был разработан командой Xerox Palo Alto Research Center Learning Research Group как программная часть Dynabook - фантастического проекта Алана Кея. В основу были положены идеи Simula.. Smalltalk является одновременно и языком программирования, и средой разработки программ. Это чисто объектно-ориентированный язык, в котором абсолютно все рассматривается как объекты; даже целые числа - это классы. Вслед за Simula, Smalltalk является важнейшим объектно-ориентированным языком, поскольку он не только оказал влияние на последующие поколения языков программирования, но и заложил основы современного графического интерфейса пользователя, на которых непосредственно базируются интерфейсы Macintosh, Windows и Motif.
Известны пять выпусков языка Smalltalk, обозначаемых по году их появления:
Smalltalk-72, -74. -76, -78, -80. Реализации 1972 и 1974 годов заложили основу языка, в частности идею передачи сообщений и полиморфизм, хотя механизм наследования еще не появился. В последующих версиях полноправное гражданство получили классы; этим достигла завершения точка зрения, что все состоит из объектов. Smalltalk-80 был перенесен на многие компьютерные платформы.
В основу языка положены две простые идеи:
- все является объектами;
- объекты взаимодействуют, обмениваясь сообщениями.
Заключение
Мы уже поняли что языки программирования высокого уровня делятся на группы и используются в разных сферах нашей жизни. Без них не было бы телефонов, компьютеров и очень много программ которые помогают нам в повседневности. Языки программирования нужны для создания и поддержки очень многих вещей. Без них наша жизнь стала бы трудней и скучней.
Приложения
Пример написания кода Hello,World на С++
#include <iostream>
int main(void)
{
std::cout <<"Hello, World!"<< std::endl;
return0;
}
Пример написания кодаHello,World на Basic
OptionExplicit
DeclareFunctionAllocConsoleLib"kernel32"()AsLong
DeclareFunctionFreeConsoleLib"kernel32"()AsLong
DeclareFunctionCloseHandleLib"kernel32"(ByValhObjectAsLong)AsLong
DeclareFunctionGetStdHandleLib"kernel32"(ByValnStdHandleAsLong)AsLong
DeclareFunctionWriteConsoleLib"kernel32"Alias"WriteConsoleA"_
(ByValhConsoleOutputAsLong,lpBufferAsAny,ByVal_
nNumberOfCharsToWriteAsLong,lpNumberOfCharsWrittenAsLong,_
lpReservedAsAny)AsLong