759c Классификация языков программирования. Сравнительный анализ. Процедурные, логические, функциональные, паралелльные, Объектно-ориентированное. Скрипты. Тэги
 

Сборник задач по программированию. Старая версия

 

 Приходько А. Н.

 

форматирование, constructor, выполнимый, макрос, логика, трассировка, виртуальный, слово, ячейка, абстракция, массив, учебник, Oracle, repeat, сдвиг
 

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

 

 

С точки зрения принципов программирования языки программирования можно разбить на 3 группы: процедурные, функциональные и логические

 

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

 

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

Программа состоит из последовательности императивных команд (явно, задающих какие преобразования выполнять над данными). Данные хранятся в виде переменных.

 

Логические языки программирования

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

 

Функциональные языки программирования

Функциональное программирование основывается на использование списков и функций. Переменные могут отсутствовать вообще.

 

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

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

 

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

 

Большинство современных процедурных языков программирования развивается в направлении объектно-ориентированного программирования.

 

Объектно-ориентированное программирование

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

 

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

 

Во-вторых, на языке Java можно разрабатывать не только стандартные программы, но и особые виды приложений, так называемые апплеты и сервлеты, которые естественным образом встраиваются в Интернет-приложения (HTML-страницы и в Web-сервера). Это придает Java очень высокую степень автономности и делает его языком программирования будущего. Java является процедурным, объектно-ориентированным языком программирвания.

 

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

 

Скриптовые (тэговые)-декларативные языки программирования
В последнее время получили широкое распространение тэговые языки описания различных структур данных, преимущественно связанных с передачей информации через Интернет. Одним из таких языков является XML - тэговый язык описания  древовидных структур с аттрибутами, используемый при построении различных типов документов. XML постепенно заменяет собой HTML, на его основе строятся файлы в формате MS Word и PDF-файлы. Для преобразования XML-файлов, например, для переформатирования его по новому шаблону, был разработан опять же тэговый язык XSLT. Структура XSL-файл (файл XSLT-преобразований) полностью соответствует спецификации XML. По своей сути, XSLT является языком функционального программирования.

 

 

Сравнительный анализ языков программирования Паскаль, Visual Basic, Java

 

 

  Паскаль Visual Basic Java
какие из известных языков лежат в основе языка ярко выраженного прототипа нет, в основе лежат длительные научные наработки синтаксис от языка Basic синтаксис от языка Си
тип языка процедурный, объектно-ориентированный процедурный, объектно-ориентированный процедурный, объектно-ориентированный
наиболее яркие особенности языка строгая типизация, разрабатывался как учебный язык, дальнейшее его развитие фирмой Borland (строгая концепция объектно-ориентированного программирование и не менее строгое ее практическое воплощение в виде среды TurboVision; первая в своем классе объектно-ориентированная визуальная среда разработки  Delphi) берет начало от VBA (Visual Basic for Applications) для MS Word, Excel, Access. Яркая идея, заложенная в эти языки, заключается в управлении объектами, отражающими иерархическую структуру документа, электронной таблицы или базы данных. Характеризуется также возможностью построения  кода программы (макроса) путем записи действий пользователя в язык заложен очень мощный потенциал, отличается длительным и интенсивным  периодом разработки, наличием стандарта; производит такое же мощное и благоприятное впечатление, какое в свое время произвел язык Паскаль, и характеризуется таким же мощным шествием и продвижением
современное состояние языка как практическая среда разработки находится в упадке, заложенные в язык классические принципы оказываются недостаточными для современного программирования; новые возможности не всегда   гармонично вписываются в язык в свое время получил широкую популярность из-за своей простоты и до сих пор не хочет с ней расставаться находится на пике развития; единственным сдерживающим фактором является конкурентная борьба фирм Sun (разработчика языка Java) и  Microsoft, продвигающей свою альтернативную технологию
.Net и язык C Sharp
основные образующие элементы программа, модуль, DLL-библиотека, процедура, класс, объект (Visual Basic for Applications) функция, макрос класс, метод, пакет. Главной отличительной особенностью является  отсутствие деления, присущего классическим процедурным языкам, на единицы выполнения (программы), компиляции (модули), динамически подключаемых библиотек (DLL). В языке Java все эти нагрузки несет одна единица (класс). Также классы имеют то же значение, что и в других языках (иерархия классов)

 

©   Приходько   Александр  Николаевич    2006

Rambler's Top100 http://task00.by.ru - Сборник задач по программированию
69 0