Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Сравнительный анализ языков программирования

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

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

 

 

Паскаль, Visual Basic, Java

 

С точки зрения принципов программирования языки программирования можно разбить на 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 является языком функционального программирования.

 

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

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

В языке Паскаль имеется два вида подпрограмм - процедуры и функции.

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

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

Формат описания процедуры имеет вид:

procedure имя процедуры (формальные параметры); раздел описаний процедуры begin исполняемая часть процедуры end;

Формат описания функции:

function имя функции (формальные параметры): тип результата; раздел описаний функции begin исполняемая часть функции end;

 

 

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

При выходе из функции они уничтожаются.

 

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

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

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

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

Массив - это объединенное одним именем (идентификатором массива) множество однотипных элементов. К основным параметрам массивов относят его тип (числовой, символьный, логический),размерность (одномерный, двухмерный и т.д.)и размер (количество элементов массива в каждом измерении).

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

Классификация и характеристика программного обеспечения

Работой компьютера управляет программа. Все программы компьютера, которые хранятся в его внешней памяти, образуют программное обеспечение (ПО).

Программное обеспечение
системное ПО прикладное ПО
Операционные системы Утилиты Системы программирования Общего назначения Специализированные программы Профессиональные программы
загружается в оперативную память и организует выполнение других программ, осуществляет взаимодействие пользователя с компьютером системная программа – оптимизирует дисковую память, защищает от вирусов и т. д. предназначены для создания новых программ текстовые табличные, графические, музыкальные, управления БД экспертные системы, гипертекстовые, мультимедийные АИСУ – автоматизационная информационная система управления, САПР – система автоматизированного проектирования, Обучающие системы, Геоинформационные поисковые
Windows, UNIX, Linux, Колибри и т. д   BASIC, Pascal, Delphi, блокнот, Word, Excel, Paint, Sound Forge, Access   «1С- предприятие», «Компас» - для черчения,

 

<== предыдущая лекция | следующая лекция ==>
Конкуренция между IBM PC и Apple Macintosh | Уровни тестирования
Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 3825; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.