Научная статья на тему 'Сравнительный анализ языков программирования Python и php'

Сравнительный анализ языков программирования Python и php Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
3031
321
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЯЗЫКИ ПРОГРАММИРОВАНИЯ / PYTHON / PHP / СРАВНИТЕЛЬНЫЙ АНАЛИЗ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Борсук Наталья Александровна, Козеева Ольга Олеговна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Сравнительный анализ языков программирования Python и php»

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» № 04-2/2017 ISSN 2410-700Х_

УДК 004.422.81

Борсук Наталья Александровна

канд. техн. наук, доцент КФ МГТУ им. Н.Э. Баумана,

г. Калуга, РФ E-mail: [email protected] Козеева Ольга Олеговна

студент 4 курса факультета «Электроника, информатика и управление» кафедры

«Компьютерные системы и сети» КФ МГТУ им. Н.Э. Баумана г. Калуга, РФ E-mail: [email protected]

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ PYTHON И PHP

Аннотация

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

Ключевые слова

Языки программирования, Python, PHP, сравнительный анализ.

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

Цель данной работы - провести сравнительный анализ свойств языков Python и PHP. Условно можно разделить эту работу на две основные части:

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

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

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

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

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» № 04-2/2017 ISSN 2410-700Х_

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

Python является языком общего назначения, поэтому может применяться практически в любой области разработки ПО (standalone, клиент-сервер, Web-приложения) и в любой предметной области. Кроме того, Python легко интегрируется с уже существующими компонентами, что позволяет внедрять Python в уже написанные приложения. [1]

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

В среду исполнения Python входит только интерпретатор, который одновременно является и компилятором, однако компилирует исходный код Python непосредственно в машинный код целевой платформы. Существуют три известных реализации среды исполнения для Python: CPython, Jython и Python.NET. [1]

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

PHP - язык программирования общего назначения, созданный преимущественно для работы над web-приложениями, для генерации HTML-страниц и работы с базами данных. PHP обладает Си-подобным синтаксисом, также является мультипарадигмальным и кроссплатформенным, ядро PHP также реализует средства для автоматического управления памятью; вся выделенная память возвращается системе после завершения работы скрипта [2].

Динамические библиотеки PHP предоставляют широкие возможности для работы с базами данных, поддерживается DBX для работы на абстрактном уровне, стандарт ODBC; осуществляется коммуникация с использованием различных протоколов (IMAP, SNMP, POP3, HTTP и другие); также PHP обеспечивает работу с сокетами, динамической графикой, криптографическими библиотеками. [3]

Наиболее широкое применение PHP находит при разработке web-приложений: подавляющее большинство сайтов и сервисов разработано именно с его помощью. Множество различных web-фреймворков и CMS-систем имеет в своей основе именно PHP.

Итак, Python и PHP в целом имеют схожие исходные характеристики. Необходимо рассмотреть их возможности при реализации конкретной задачи.

В качестве экспериментальной задачи рассматривается реализация весьма несложного и распространенного алгоритма сортировки «пузырьком». Входная последовательность содержит случайные целые числа в интервале от 0 до 1000 и формируется в отдельном PHP-скрипте, фрагмент которого представлен ниже:

for($i=0; $i<100; $i++) {

$data[$i] = rand(0,1000);

}

Затем эта же последовательность копируется в исходный код. Поэтому в листинге программы не представлено формирование входных данных, а лишь указана часть уже заполненного массива. Исходный код на языке Python: import time import math import random

# Запуск таймера......................................................

null_point = time.time()

# Алгоритм сортировки.............................................

data=[683, 996, 439, ... , 387, 968, 689]

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» № 04-2/2017 ISSN 2410-700Х_

for i in range(len(data)):

for j in range(len(data) - 1, i, -1): if data[j] < data[j-1]:

data[j], data[j-1] = data[j-1], data[j]

# Стоп-таймер.........................................................

print('Runtime = ', time.time() - null_point)

Исходный код на языке PHP: <?php

// Запуск таймера......................................................

$null_point = microtime(true);

// Алгоритм сортировки.............................................

$data = array (683, 996, 439, ... , 387, 968, 689);

for($i=0; $i<count($data); $i++) {

for($j=$i+1; $j<count($data); $j++) {

if($data[$i]>$data[$j]) {

$temp = $data[$j]; $data[$j] = $data[$i]; $data[$i] = $temp;

}

}

}

// Стоп-таймер ---------------------------------------------------------

echo 'Runtime = '.(microtime(true) - $null_point);

?>

В результате работы программы на выходе были получены следующие данные, представленные в Таблице 1:

Таблица 1

Выходные данные

Измеряемые параметры/Язык программирования Python PHP

Время выполнения (секунд) 0,49002504348754883 0,1380500793457

Загрузка памяти (из 4,9 ГБ) 0,2 МБ 0,3 МБ

Из Таблицы 1 видно, что по быстродействию программа, написанная на Python, уступает аналогичной на PHP в 3,5 раза, однако, загружает память в 1,5 раза меньше. Необходимо подчеркнуть, что приведенные данные носят приближенный характер ввиду возможных погрешностей измерения характеристик при использовании методов с ограниченной точностью. Тем не менее они позволяют дать общее представление о производительности кода и в соответствии с поставленными задачами и требованиями, предъявляемыми к ним, сделать выбор в сторону того или иного языка. Можно также выделить, что PHP оправданно широко используется в web-программировании, учитывая скорость выполнения его скриптов. В целом полученные результаты соответствуют известным раннее выводам о характеристиках данных языков. Список использованной литературы

1. Программирование на Python: Часть 1. Возможности языка и основы синтаксиса. URL: https://www.ibm.com/developerworks/ru/library/l-python_part_1/ (дата обращения 31.03.2017)

2. PHP at the core: Memory managament. URL: http://ua.php.net/manual/en/internals2.memory.management.php (дата обращения 31.03.2017)

3. Возможности PHP. URL: http://www.php.su/php/?can (дата обращения 31.03.2017)

© Борсук Н А., Козеева О.О., 2017 г.

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» № 04-2/2017 ISSN 2410-700Х_

УКД 519.873

Будников А.В., сотрудник Академия ФСО России Научный руководитель: Ходжаев И.А., к.т.н, доцент

Академия ФСО России г. Орел, Российская Федерация

ПРОГНОЗИРОВАНИЕ ТЕХНИЧЕСКОГО СОСТОЯНИЯ РАДИОЭЛЕКТРОННОЙ АППАРАТУРЫ С ИСПОЛЬЗОВАНИЕМ ПОЛИНОМИАЛЬНОЙ МОДЕЛИ И СПЛАЙН-АППРОСИМАЦИИ

Аннотация

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

Ключевые слова

Прогнозирование постепенных отказов, полиномиальные модели дрейфа параметров РЭА, сплайн-аппросимация, алгоритмы прогнозирования

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

При рассмотрении моделей дрейфа параметров радиоэлектронной аппаратуры, будем основываться на следующих исходных данных и положениях (рисунок 1).

Исходные данные и условия для прогнозирования технического состояния радиоэлектронной аппаратуры

Априорные данные о значениях параметров, определяющих техническое состояние РЭА

Процесс дрейфа параметров - это инерционный процесс

Параметры процесса изменяются монотонно

Имеют место параметры с односторонним и двухсторонним изменениями значений

Рисунок 1 - Исходные данные и необходимые условия для прогнозирования технического состояния РЭА

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

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

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

i Надоели баннеры? Вы всегда можете отключить рекламу.