Дипломная работа: Организация корпоративных информационных систем (на примере ООО «Сула»)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
32
• эффективность,
• безопасность,
• выразительность,
• поддержка,
• расширяемость,
• поддержка методов параллельного программирования.
Кроссплатформенность - обеспечивает возможность сборки исходного
кода без его изменения доя различные аппаратные и программные систем. Под
аппаратными системами в первую очередь понимаются системы1 с различными
архитектурами процессора и объемом оперативной/постоянной памяти. Однако
наличие одинаковой аппаратной платформы1 еще не гарантирует
совместимость программного обеспечения. Как правило, современное
программное обеспечение разрабатывается с учетом работы на этой аппаратной
платформе некоторой операционной системы. Для языка программирования
кроссплатформенность означает наличие компилятора дои среды выполнения
под различные аппаратные и программные платформы^
Мультипарадигменность - поддержка языком различные парадигм
программирования, что позволяет писать код продукта в том ключе, который
более удобен доя конкретно решаемой задачи
Так, например, доя программирования общей архитектуры системы
хорошо подходит ООП парадигма, а код алгоритмов часто просто приходиться
писать в императивном стиле на языке низкого уровня, пожертвовав удобством
ради скорости выполнения.
Эффективность
Эффективность выполнения одной и тот же последовательности
операций написанного на различных языках крайне трудно оценить, как
минимум из-за различия в семантике языка однако можно с уверенностью
разделить языки по скорости выполнения генерируемого на их основе
машинного дои байт кода на три класса.
Компилируемые языки
33
Это языки компиляция которых порождает объектный код целевой
платформы. Такой объектный код являет непереносимым, в том плане, что он
предназначен доя исполнения на процессоре тот архитектуры, для которых
компилировала. Таким образом, доя каждой аппаратной платформы может
быть собран объектный код на основе программного кода продукта компилятор
данного языка в объектный код этот аппаратной платформы. Это позволяет.
Компилируемые языки работают быстрее интерпретируемых и
компилирующихся в байт-код.
Языки с компиляцией в байт-код
Такие языки транслируются в промежуточное представление - байт код
виртуальной машины, который можно рассматривать как аналог ассемблера
доя целевой виртуальной машины. Как правдой содержат средства JIT
компиляции, что почти уравнивает их по скорости выполнения с
компилируемыми языками.
Интерпретируемые языки
Программный код написанной на этот категории языков работает
медленнее всего. Причина в том что в случае компиляции в машинный дои
байт код компилятор строит абстрактное синтаксическое дерево на основе всей
информации о программе, которое анализируется и затем оптимизируется.
Интерпретатор лишен возможности проанализировать весь программный код
целиком, он вынужден анализировать команды построчно и интерпретировать
их, каждую в отдельности.
Безопасность
Многие конструкции языка могут содержать потенциальные опасности
их использования. Возможности низкоуровневого доступа к памяти,
преобразование типов операции с указателями, отсутствие обработки
исключений, и встроенной проверки критических ситуаций, такта как выход за
границы массива обращение к неинициализированным данным приводат к
тому, что код становится небезопасным. Во время выполнения такой код может
выполнить недопустимую операцию дои привести к краху ОС Для
34
параллельных программных систем факторами уменьшающими безопасность
кода является отсутствие механизмов синхронизации потоков разделяемых
переменных, атомарных операций и других языковых средств
Выразительность языка
Язык накладывает множество ограничений при
проектировании архитектуры ПО. Языковые конструкции одновременно
ограничивают программиста и в то же время предоставляют ему некоторый
уровень абстракции. Так например, программы, написанные в опеперативном
стиле на ассемблере предоставляют неограниченный контроль над машиной, но
в то же время, код на языке ассемблера труден доя восприятия человеком, его
сложно модифицировать и поддерживать. Это происходит по причине того что
ассемблерные инструкции описывают элементарные операции над данными, в
то время как программист представляет логику работы более абстрактно.
За структурным программированием появились объектно-
ориентированное и др. При всем этом разнообразии рассматриваемые далее
языки за исключением C, относятся к объектно-ориентированному типу но при
этом поддерживают и оперативную и функциональную парадигмы, однако
большинство кода на такта языках пишется в объектно-ориентированном стиле.
ООП парадигма прочно задала свое место в разработке программных систем
благодаря основным принципам: наследованию, инкапсуляции, полиморфизму
и абстрагированию. Так же как все структурные языки имеют реализации
цикла, ветвления, так и все ООП языки так или иначе реализует языковые
средства доя организации сокрытия функционала за некоторым интерфейсом,
полиморфного поведения объектов языке и обеспечения низкой связанности
компонентов. Однако все языки делают это по- своему.
В настоящее время программисты не испытывают недостатка в выборе
средств программирования: существует множество различных языков, как
универсальных, используемых во многих сферах программирования и
способных работать на нескольких аппаратных и программных платформах,
так и специализированные, ориентированные на определенную область
35
разработки, как, например, PROLOG - язык программирования высокого
уровня, предназначенный для реализации систем и программ искусственного
интеллекта. Существует множество различных классификаций языков
программирования: по уровню семантики (языки высокого и низкого уровня),
по используемым парадигмам программирования, по безопасности и по ряду
других характеристик. Совокупность требований к разрабатываемой системе и
определяет выбор средств ее реализации на этапе проектирования;
учитываются требования к ее быстродействию, надежности, информационной
безопасности.
Цель данной работы - провести сравнительный анализ свойств языков
Python и PHP. Условно можно разделить эту работу на две основные части:
- теоретическая часть, содержащая краткий обзор возможностей
языков программирования и сферы их применимости,
- практическая часть, содержащая данные о проведенном
эксперименте с приведением кода программ, выполняющих аналогичные
действия, написанных на исследуемых языках, выходные данные и их
непосредственный анализ, включающий сравнительную характеристику
времени выполнения программы, объем исполняемых файлов и нагрузку на
память ЭВМ.
В результате по полученным данным можно сделать обобщенный вывод
о характеристиках языков и степени их различия.
Одним из распространенных средств разработки является
высокоуровневый язык программирования Python. Python имеет поддержку
различных парадигм программирования (структурного,
объектноориентированного функциональное и других); в нем используется
динамическая типизация переменных, обеспечивается периодическое
освобождение памяти от неиспользуемых объектов. Python обладает
достаточно лаконичным синтаксисом, с более высоким уровнем абстракции, по
сравнению с PHP, и позволяет передать такое же количество информации в
меньшем объеме исходного кода.
36
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
Источник: https://baza.diplomsite.ru/previewfile/1391