Файл: Обзор языков программирования высокого уровня (Характеристика инструментального программного обеспечения).pdf

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

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

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

Добавлен: 28.03.2023

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

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

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

Например, в браузере JavaScript может:

– Добавлять новый HTML-код на страницу, изменять существующее содержимое, модифицировать стили.

– Реагировать на действия пользователя, щелчки мыши, перемещения указателя, нажатия клавиш.

– Отправлять сетевые запросы на удалённые сервера, скачивать и загружать файлы (технологии AJAX и COMET).

– Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения [14].

– Запоминать данные на стороне клиента («local storage»).

Возможности JavaScript в браузере ограничены ради безопасности пользователя. Цель заключается в предотвращении доступа недобросовестной веб-страницы к личной информации или нанесения ущерба данным пользователя [10].

Примеры таких ограничений включают в себя:

– JavaScript на веб-странице не может читать/записывать произвольные файлы на жёстком диске, копировать их или запускать программы. Он не имеет прямого доступа к системным функциям ОС.

– Современные браузеры позволяют ему работать с файлами, но с ограниченным доступом, и предоставляют его, только если пользователь выполняет определённые действия, такие как «перетаскивание» файла в окно браузера или его выбор с помощью тега <input>.

– Существуют способы взаимодействия с камерой/микрофоном и другими устройствами, но они требуют явного разрешения пользователя. Таким образом, страница с поддержкой JavaScript не может незаметно включить веб-камеру, наблюдать за происходящим и отправлять информацию в ФСБ [6].

– Различные окна/вкладки «не знают» друг о друге. Иногда одно окно, используя JavaScript, открывает другое окно. Но даже в этом случае JavaScript с одной страницы не имеет доступа к другой, если они пришли с разных сайтов (с другого домена, протокола или порта).

Это называется «Политика одинакового источника» (Same Origin Policy). Чтобы обойти это ограничение, обе страницы должны согласиться с этим и содержать JavaScript-код, который специальным образом обменивается данными [13].

Это ограничение необходимо, опять же, для безопасности пользователя. JavaScript может легко взаимодействовать с сервером, с которого пришла текущая страница. Но его способность получать данные с других сайтов/доменов ограничена. Хотя это возможно в принципе, для чего требуется явное согласие (выраженное в заголовках HTTP) с удалённой стороной. Опять же, это ограничение безопасности.

Подобные ограничения не действуют, если JavaScript используется вне браузера, например — на сервере. Современные браузеры предоставляют плагины/расширения, с помощью которых можно запрашивать дополнительные разрешения [4].


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

Программные интерфейсы приложения (API), встроенные в браузеры, обеспечивающие различные функциональные возможности, такие как динамическое создание HTML и установку CSS стилей, захват и манипуляция видеопотоком, работа с веб-камерой пользователя или генерация 3D графики и аудио сэмплов [8].

Сторонние API позволяют разработчикам внедрять функциональность в свои сайты от других разработчиков, таких как Twitter или Facebook.

Также вы можете применить к вашему HTML сторонние фреймворки и библиотеки, что позволит ускорить создание сайтов и приложений.

2.6. Язык Python

В 1989 году сотрудник голландского института, тогда мало кому известный Г. ван Россум взял участие в проекте создания ЯП ABC. Язык предназначался для замены языка программирования BASIC, для обучения основным концепциям программирования.[4]

В результате ученый в течении пары недель на своем домашнем ПК написал интерпретатор другого языка, для чего он позаимствовал некоторое количество прогрессивных идей того времени из ABC. После этого Гвидо начал его распространять созданный ЯП через Интернет.

На ранних этапах создания подключился довольно известный в то время эксперт Стив Маевский, который до 1995 года вел блог "Сравнительная критика ЯП".

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

Уже в 1990 году появились самые первые средства для обеспечения объектно-ориентированной парадигмы.

Через некоторое время ван Россум переехал в Америку. Его пригласили на работу в корпорацию CNRI, где он и использовал Python для проектов, которыми занималась корпорация.

Так это продолжалось до изобретения в 1998 г. версии 1.5.1, когда в жизни Гвидо начались пертурбации [11].

Корпорация, где он работал, оставляла ему очень мало времени на развитие Питона, а это ученого перестало устраивать.

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


Гвидо решил пожертвовать зарплатой и начал искать спонсора, который позволял бы ему работать над развитием интерпретатора и языка. Образовавшаяся в то время фирма под названием BeOpen решила его поддержать [6].

Версия 2.0 – довольно большой шаг вперед, хотя в первую очередь это можно констатировать в социальном плане. В данной версии самое главное, что такой процесс развития ЯП и интерпретатора стал намного открытее. Гвидо перевел все составные части языка на SourceForge.

Сам процесс развития всех версий стал виден большему количеству пользователей. Сообщество пользователей выросло, оно стало требовать предоставления возможности участия для развития языка, и Гвидо пошел на это [11].

Кроме казанной активности произошло еще много чего нового и интересного в развитии ЯП:[16]

– появился Юникод;

– появился новый инструмент регулярных выражений, что работает как для классических строк, так и для формата Юникод.

Через некоторое время в BeOpen начались большие проблемы, а ученый опять уволился и опять начал искать место, где бы мог развивать язык, не обращая никакого внимания на коммерческие проблемы.

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

Язык программирования Python – очень мощный инструмент для проектирования программ самого разного назначения, доступный для новичков. С его применением можно решать задачи самых различных типов: от написания консольных программ до создания синтаксических анализаторов текста.

Язык Python обладает примечательными особенностями, которые могут обуславливать его широкое распространение. В результате, прежде чем начать описание синтаксиса Python, следует рассказать также о его недостатках и достоинствах.

Поскольку Python является интерпретируемым языком программирования, то, с одной стороны, это дает возможность значительно упростить процесс отладки программ, но с другой – обуславливает низкую скорость ее выполнения.[12]

– Динамическая типизация данных – не надо заранее выполнять объявление типа переменной.

– Хорошая поддержка модульности. Вы можете легко написать свой модуль и использовать его в других программах.

– Встроенная поддержка формата Unicode в строках. Для Python необязательно писать код на английском языке, в программе может вполне использоваться другой язык [4].

– Поддержка ООП. При этом реализация его в Python является одной с самых понятных по сравнению с другими языками.


– Автоматическая сборка мусора, а также отсутствие утечек памяти при выполнении программ.

– Интеграция с языками C/C++, если возможностей Python будет недостаточно [11].

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

– Огромное количество модулей (входящих в классическую поставку Python, так и сторонних). В некоторых случаях при написании программы достаточно только найти подходящие модули, а потом правильно их скомбинировать.

– Кроссплатформенность. Программа, которая написана на Python, будет работать совершенно одинаково на зависимо от того, в какой именно операционной системе ее запустить. Отличия возникают только в редких случаях, но их легко заранее можно предусмотреть благодаря наличию документации. [8]

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

О рассматриваемом ЯП есть уже масса положительных отзывов, поэтому определить его недостатки очень проблематично. Единственным недочетом считают небольшую медлительность в процессе выполнении алгоритма при его сравнении с Java и иными языками программирования. Но зато ЯП Python является интерпретируемым. Если же программа достойна внимания, то разные ее участки можно быстро подкорректировать. Над улучшением работы Python трудятся специалисты, которые учли уже его незначительные недочеты, а также могут внести некоторые адекватные исправления [5].

Сегодня пользователи располагают доступом к двум версиям синтаксической системы Python.

Стоит отметить, что в ЯП присутствуют очень многие модули для его расширяемости.

2.7. Язык Go

На рынке языков программирования появился новый игрок – язык программирования Go от компании Google. Если верить официальным заявлениям Google, то Go – это универсальный язык, пригодный для любых задач. Google анонсировал язык Go в 2009 году, и с тех пор он немного изменился, но цели и задачи у него остались прежние: этот язык предназначен для системного программирования и по своей сути очень похож на С++.


Язык Go – это компилируемый и многопоточный язык общего назначения, имеющий много общих черт с языком С++, поэтому для успешного освоения представленного материала необходимы определенные знания в C++ [4].

В языке Go отсутствуют такие понятия, как класс, конструктор и деструктор (вместе с соответствующими зарезервированными словами). Однако в нем существуют структуры, позаимствованные из языка С, к которым можно привязать функции, поэтому в go можно создавать код и в стиле ООП.

Наличие «сборщика мусора» упрощает работу с памятью, по сравнению с C или С++. Существуют и указатели, но арифметика для них не предусмотрена [16].

Поэтому, даже зная адрес переменной, перемещаться в памяти относительного него невозможно. Это сделано из соображений безопасности. Сравнивая язык Go с С++, стоит упомянуть о невозможности перегрузки функций и об отсутствии определяемых пользователем операций. Нет также заголовочных файлов и неявного преобразования типов.

Многопоточность поддерживается на уровне языка, для связи потоков используются каналы [4].

Для работы с языком Go потребуется установить следующее программное обеспечение:

  1. GCC;
  2. стандартная библиотека С;
  3. генератор bison;
  4. make;
  5. awk;
  6. редактор ed.

Язык go поддерживает исходный код в кодировке UTF-8, поэтому никаких специальных действий для использования символов, не входящих в английский алфавит, не потребуется. Даже в имени переменной могут содержаться китайские иероглифы [17].

Также в этом языке существует большое количество различных типов данных.

Например, существует пять вариантов целочисленного типа int: int, int8, int16, int32, int64. Такие же типы данных, но с префиксом u, представляют беззнаковые значения.

Числа с плавающей точкой представлены тремя типами: float, float32 и float64. В языке Go нет неявного приведения типов, поэтому при компиляции могут возникать ошибки.

Имеется даже два типа данных для комплексных переменных: complex64 и complex128. Встроенный тип string представляет собой неизменяемый массив байт [3].

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

ЗАКЛЮЧЕНИЕ

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