Файл: «Современные языки программирования»(Введение в языки программирования ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 13.03.2024

Просмотров: 23

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1.3.3 Фундаментальная парадигма

Фундаментальная парадигма (functional paradigm) рассматривает процесс разработки программы как соединение «черных ящиков», каждый из которых получает входные данные и порождает выходные данные так, чтобы создать необходимую зависимость между ними.[9] Математики называют данные «ящики» функциями, из-за чего подход имеет название функциональный. Примитивы функционального языка программирования являются элементарными функциями, при помощи которых есть возможность построить более сложные функции, необходимые для решения определенной задачи. В таком случае, разработчик, придерживающийся функциональной парадигмы, создает ПО, совмещая элементарные функции в систему, суть которой порождать необходимый результат. Дословно, процесс программирования сводится к построению простых функций из более сложных.

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

Объектно-ориентированная парадигма (object-oriented paradigm) и соответствующее ей объектно-ориентированное программирование (ООП) представляют собой другой подход к процессу разработки программного обеспечения.[10] Данные – это «объекты», а не как пассивные единицы в императивной парадигме. В императивной парадигме список рассматривается набором данных, Программа, которая пытается получить доступ к списку, обязана содержать алгоритм, выполняющий необходимые действия. В таком случае, список является пассивным, т.е. он обслуживается управляющей программой, а не сам себя. Но при объектно-ориентированном подходе список рассматривается как объект, который состоит из самого списка и программ для манипуляций. Таким образом, программе, которая пытается получить доступ к списку, не должна включать в себе алгоритмы для выполнения данных задач. Вместо этого она использует методы объекта. Т.е. объект имеет возможность попросить отсортировать себя, а не программа сортирует его, как это было императивной парадигме.

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


В конце концов, стоит заметить, что методы объекта, являются небольшими императивными программными единицами. Таким образом, большое количество объектно-ориентированных языков программирования обладают свойствами императивных языков. К примеру, популярный объект-ориентированный язык C++ был создан с помощью добавления к императивному языку C объектно-ориентированных возможностей.[12] Об этих и других языках мы поговорим в следующем разделе, а также рассмотрим их значимость в современном мире программирования и программном обеспечении уже в следующей главе.

1.4 Краткий обзор популярных языков современного программирования

1.4.1 Язык программирования C

Язык С был изобретен и реализован в 1970-х годах Деннисом Ритчи. Этот язык появился в результате эволюции языка BCPL. BCPL разработан Мартином Ричардсом под влиянием другого языка В, автор которого Кен Томпсон.

Долгое время стандартом языка С была версия для UNIX системы. Впервые её описание было в книге Брайана Кернигана и Денниса Ритчи The С Programming Language в 1978 году. В 1983 году, летом был создан комитет Американского института национальных стандартов (ANSI), суть которого была разработать стандарт языка С. Работа комитета растянулась на шесть долгих лет.

После чего стандарт ANSI C был одобрен в декабре 1989 года и стал распространяться в начале 1990-го. Данный стандарт был помимо этого одобрен Организацией международных стандартов (ISO), получив название ANSI/ISO Standard С. В 1995 году одобрена Первая поправка, суть которой, добавление нескольких новых библиотечных функций. В 1989 году стандарт языка С вместе с Первой поправкой стали базовым документом для стандарта языка C++, в котором было выделено подмножество С. Версию языка С, определенную стандартом 1989 года, обычно называют С89.[13]

После 1989 года в центре внимания разработчиков стал язык C++. Формирование данного языка в течение 1990-х годов закончилось одобрением стандарта в конце 1998 года. Между тем работа над языком С продолжалась, не создавая чрезмерного шума. Из-за чего в 1999 году появился новый стандарт языка С под названием С99. Стандарт С99 сберег фактически все свойства стандарта С89, не изменив основных нюансов языка. Язык С стандарта С99, практически совпадает с языком, соответствующим стандарту С89. Комитет по разработке стандарта С99 сосредоточился на двух вопросах: включении в язык нескольких математических библиотек и развитии некоторых специфических и весьма сложных свойств, например, массивов переменной длины и квалификатора указателей restrict. В стандарт С99 вошли также некоторые свойства, позаимствованные из языка C++, например, однострочные комментарии. Поскольку разработка стандарта языка C++ завершилась до создания стандарта С99, ни одно из новшеств языка С не вошло в стандарт C++


C – язык сравнительно "низкого уровня". Ничего уничижительного в этом определении нет; это всего лишь значит, что язык C работает с теми же объектами, что и большинство компьютерных систем, а именно с символами, числами и адресами.[14]

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

Как и у любых языков, у C есть свои недостатки: некоторые операции имеют нелогичный приоритет; некоторые синтаксические конструкции можно было бы организовать и получше. И тем не менее язык C доказал свою высочайшую эффективность и выразительность для самого широкого круга приложений.[15]

#include <stdio.h>

int main(void)

{

printf("Hello, World!\n");

getchar();

return 0;

}

Листинг 1. Вывод строки "Hello, World!" на языке программирования C

1.4.2 Язык программирования C++

Изначально язык C++ представлял собой расширение языка С. Впервые он был разработан в 1979 году Бьярном Страуструпом (Bjame Stroustrup), сотрудником компании Bell Laboratories в г. Мюррей-Хилл (штат Нью-Джерси) Сначала язык назывался “C с классами”, однако в 1983 году его название было изменено на C++.[16]

Хотя язык С был одним из любимых и широко известным среди профессиональных языков программирования, его возможностей уже не хватало для решения основной проблемы: возрастающей сложности программ. Из года в год программы становились все более крупными и сложными. Никто не спорит, язык С – потрясающий язык программирования, хотя его способности, как не прискорбно, ограничены. Как только размер программы начинает колебаться в пределах от 25000 до 100000 строк кода, она становится настолько сложной, что возможности языка С не позволяют работать с ней, как с единым целым. Одной из целей языка C++ было преодоление этой преграды. Язык C++ предоставил программистам превосходно одолевать более крупные и сложные программы.

Многие усовершенствования, внесенные в язык С, касались лишь поддержки ООП (Краткое описание этой парадигмы программирования содержится в разделе «Парадигмы программирования»). Страуструп заявляет, что некоторые объектно-ориентированные свойства языка C++ унаследованы у Simula 67. Из-за чего выясняется, что язык C++ обладает достоинствами двух мощных методов программирования.


После рождения языка C++ его модификация проходила трижды, каждый раз приобретая все новые свойства. Первый пересмотр его основ состоялся в 1985 году, второй раз он подвергался ревизии в 1990 году. Несколько лет назад началась работа над созданием стандарта языка C++. Для этого была сформирована объединенная комиссия двух организаций по стандартизации: ANSI и ISO.[17] Первый черновой вариант стандарта был обнародован 25 января 1994 года. В этом документе комитет ANSI/ISO C++ пытался придерживаться идей, сформулированных Страуструпом, добавив к ним новые возможности. И всё же в целом стандарт лишь констатировал состояние языка C++, сложившееся в тот момент.

Далее после опубликования первого варианта стандарта произошло событие, которое оказало огромное влияние на развитие языка C++: Александр Степанов разработал стандартную библиотеку шаблонов STL (Standard Template Library). Данная библиотека представляет собой набор обобщенных процедур, которые можно применять для обработки данных. Библиотека STL – не только мощный и элегантный, но и очень крупный механизм. Из-за чего члены комитета единогласно проголосовали за включение библиотеки STL в стандарт языка C++. Это сильно расширило изначальные рамки языка C++, но кроме этого, приостановило процесс стандартизации.

#include <iostream>

using namespace std;

int main()

{

cout << "Hello, World!";

return 0;

}

Листинг 2. Вывод строки "Hello, World!" на языке программирования C++

1.4.3 Язык программирования C#

C# – современный, объектно-ориентированный, типобезопасный язык программирования. C# входит в семейство языков C, из-за чего не составляет труда его освоить, имея опыт на C, C++ или Java. Он соответствует международному стандарту Европейской ассоциации производителей компьютеров (ECMA) – стандарт ECMA-334, а также стандарту ISO и Международной электротехнической комиссии (International Electrotechnical Commission, IEC) – стандарт ISO/IEC 23270. Компилятор Microsoft C# для .NET Framework согласуется с обоими этими стандартами.[18]

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


using System;

namespace HelloWorld

{

class Hello

{

static void Main()

{

Console.WriteLine("Hello, World!");

Console.ReadKey();

}

}

}

Листинг 3. Вывод строки "Hello, World!" на языке программирования C#

1.4.4 Язык программирования Java

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

Язык Java был задуман в 1991 году сотрудниками компании Sun Microsystems Джеймсом Гослинrом, Патриком Нотоном, Крисом Уортом, Эдом Фрэнком и Майком Шериданом.[19] Его изначальное название – Oak, но в 1995 году, по решению маркетологов, его переименовали в Java. В первое время сами разработчики языка не ставили перед собой задач разработки интернет-приложений. Главной их целью было создание платформенно-независимого языка, при помощи которого можно было бы создавать встраиваемое программное обеспечение для разной бытовой аппаратуры с микропроцессорным управлением, таких как тостеров, микроволновых печей и пультов ДУ. Обычно, в устройствах подобного типа применялись микропроцессорные контроллеры различной архитектуры, а исполняемый код, был ориентирован на определенные архитектуры процессоров. Таким примером может служить язык С++.

Несмотря на то что программу, написанную на С++, можно выполнить на процессоре практически любого типа, сделать это можно, лишь скомпилировав ее в исполняемый код команд конкретного процессора. Создание компиляторов – длительный и трудоемкий процесс, поэтому в поисках оптимального решения Гослинr и другие члены рабочей группы остановились на межплатформенном языке, для которого компилятор генерировал бы код, способный выполняться на разных процессорах в различных вычислительных средах. В конце концов их усилия увенчались созданием языка, известного теперь как Java.

class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello, World!");

}

}

Листинг 4. Вывод строки "Hello, World!" на языке программирования Java

1.4.5 Язык программирования Python