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




Preprocessor of Home Pages — препроцессор домашних страниц. Это язык создан для внедрения в HTML-страницы сценариев, на основе кот. можно max-но быстро создавать динамически генерируемые Web-страницы. Синтаксис заимствован из С, Perl, Java, и при этом добавлена масса возможностей, которых этим языкам недостает.

Достоинства

1) обладает полным набором для WEB-программирования;

2) открыт исходный код;

3) кроссплатформенный язык;

4) бесплатен; постоянно совершенствуется; работает на UNIX и Windows платформах;

5) допускает ООП и работу с большинством СУБД;

6) способен использовать протоколы HTTP, FTP, SNMP, NNTP, РОРЗ, net sockets и другие;

7) РНР-скрипты можно запускать как интерпретируемые файлы и компилировать исполняемые приложения (в том числе с поддержкой графического интерфейса GTK).

Недостатки

1) требуются ресурсы на запуск обработчика скрипта и интерпретацию;

2) каждый раз при запросах к СУБД каждый раз создается новое соединение с БД.


10.37 КОНЦЕПЦИИ JAVA И C#

Концепция Java, состоящая из структурного ОО языка программирования и сконструированной специально для него виртуальной машины была представлена в августе 1995 г. Переносимость достигается посредством транслирования исходного кода программы в промежуточный язык, называемый байт-кодом, который затем исполняется виртуальной машиной Java (JVM). Следовательно, Java-программа может быть запущена на любой платформе, где установлена JVM.

За основу языка Java был взят язык С и C++ (синтаксис базируется на C, а объектная модель развилась из C++), полезные идеи были заимствованы из SmallTalk. Хотя Java не совместим с C или C++, их знание упрощает изучение нового языка.

В Java сохранен стиль программирования на C++ и удалены черты, которые:

- делают невозможным контроль безопасности приложений;

- не являются абсолютно необходимыми, чаще мешают програм­мисту;

- являются источником наиболее трудно и поздно распознаваемых ошибок

Особенности языка

1. полная ОО. все типы данных инкапсулированы в соответствующие классы, поэтому в программе нет данных, не являющихся объектами, нет функций, не являющихся методами. Возможность работы с простыми методами сохранена. Хотя для простых типов с целью облегчения кода оставлена возможность непосредственного использования. Простые типы используются для передачи параметра метода по значению, а объектные типы – по ссылке. Язык Java реализует все механизмы ОО программирования.

2. наличие пакетов стандартных библиотек.

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

- для изолирования пространства идентификаторов;

- для ограничения видимости.

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

Встроенные классы в языке Java, входящие в комплект поставки, хранятся в пакете java. Они размещены в специальном файле, который называют библиотекой классов.

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

java. lang – базовый набор типов, отраженных в самом языке. Пакет содержит базовые классы Object и Class. Имеются специальные классы для работы со строками и символами. Для поддержки многопотоковости разработан класс Thread. Класс Exception содержит все необходимые средства для корректной работы со всеми объектами и ресурсами в случае возникновения исключительных ситуаций. Пакет java. lang обязательно входит в состав любого приложения.

java. io – содержит средства для работы с потоками и файлами последовательного доступа. Аналог библиотеки стандартного ввода-вывода системы UNIX.

java. util – содержит классы-контейнеры с множеством полезных функций (Date, Time, Dictionary, HashTable, Stack, …) и другие утилиты.

java. awt – библиотека (Abstract Windowing Toolkit), представляющая новый, не зависящий от конкретной графической оболочки стандарт для разработки приложений, использующих архитектурно-независимый оконный интерфейс. Содержит базовые компоненты интерфейса, такие как события, цвета, фонты, а также основные оконные компоненты: кнопки, линейки прокрутки и т. д.

3. Переносимость и нейтральность относительно архитектуры. Байт-код языка Java един для всех платформ и архитектур. Благодаря наличию виртуальных машин Java -приложения могут разрабатываться и исполняться на самых разных вычислительных платформах. Это решение в дальнейшем было применено и в языке С#. Формат команд JVM прост: обычно команды не имеют операндов и занимают один байт. Таким образом, возможна эффективная эмуляция JVM для большого числа платформ.

4. Интерпретируемость. Исходный код Java -приложений преобразуется компилятором в байт-код, исполняемый виртуальной машиной в режиме интерпретации. Java использует «позднее связывание», начинаемое непосредственно перед исполнением. При создании байт-кода компилятор не определяет адресов и размеров объектов в памяти. Связывание имен и настройку адресов в оперативной памяти осуществляет виртуальная машина.

5. Надежность. Язык строго типизирован, поэтому значительная часть ошибок может быть выявлена на стадии компиляции. Такие возможности для контроля как переполнение стека, отслеживание границ массивов, поиск резервов для оптимизации и другие стали обязательными элементами разработки языка.

6. Работа в сети

Язык имеет развитые средства для создания сетевых приложений, находящиеся в библиотеке java. net, которая содержит классы для поддержки IP -адресов, URL, а также различных протоколов, таких как TCP / IP, UDP, telnet и т. д.

7. Автоматическая сборка «мусора»

В Java отсутствуют деструкторы. Объект существует до тех пор, пока на него есть ссылки, т. е. он прямо или косвенно доступен хотя бы одной переменной. Механизм удаления объектов встроен в виртуальную машину, работает в фоновом режиме, осуществляя поиск потерянных объектов и освобождая занятую ими память. В момент утилизации объекта сборщиком мусора будет вызван асинхронный метод finalize.

8. Динамичность и открытость для обновлений

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

Недостаток: отсутствие прямой поддержки платформы Windows, являющейся в настоящее время наиболее широко используемой ОС в мире.

Схема процессов разработки и исполнения Java -программ

Язык С# разрабатывался для создания кода.NET Framework, поэтому он использует две важные составляющие этой технологии:

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

- библиотеку классов. NET, которая дает программе доступ к среде исполнения,

- Microsoft позиционирует С # как универсальную переносимую платформу аналогичную Java. С # вобрал в себя лучшее от С ++ и Java, устранив их недостатки. C # имеет стиль синтаксиса языка C (для управляющих конструкций, блоков кода, описания сигнатуры методов и др.), много общего с Java (отсутствие множественного наследования и шаблонов, наличие сборщика мусора) и с Delphi (ориентированность на создание компонент), и в то же время имеет и свои особенности.

Важной и отличительной от языка С ++ особенностью C # является его простота. При создании языка в основу дизайна легли следующие основные принципы:

- легкость написания приложений, доминирующая над мощностью языка и скоростью выполнения;

- простота поддержки приложений, в связи с чем в язык включили поддержку XML -комментариев и контроля версий.

Особенности языка C #

1. C # – ОО язык, как и вся платформа. NET. Более того, это язык, ориентированный на написание компонент. Язык позволяет рассматривать все типы (даже примитивные) как объекты. Указатели больше не нужны, но в отличие от Java обеспечивается возможность их использования. Управление памятью производится автоматически.

2. C # создан для программирования в управляемой среде с присутствующим сборщиком мусора, но позволяет писать и неуправляемый (unmanaged) код. Перед удалением недоступного объекта из памяти автоматически вызывается деструктор. В отличие от C ++ деструктор не вызывается при выходе за пределы области видимости, в которой объект был создан. Для утилизации объектов, инкапсулирующих неуправляемые ресурсы, деструктор неявным образом вызывает метод Finalize для базового класса объекта.

3. В язык C # включены и инновационные элементы – делегаты (delegates) и индексаторы (indexers).

4. В С # предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов. В С # осталась возможность перегружать операторы, унаследованные от C ++. При этом значительная часть возникавших при этом сложностей ликвиди­рована.

5. В C # представлена концепция пространств имен, аналогичная пакетам в Java. Это позволяет иерархически структурировать систему типов, что делает код намного более понятным и оптимизирует именование. Можно рассматривать пространства имен как директории, а языковые типы как файлы в этих директориях.

6. Предусмотрена полная поддержка использования программных интерфейсов. Однако в отличие от классической модели СОМ применение интерфейсов – это не единственный способ работы с типами, использующий различные двоичные модули.. NET позволяет передавать объекты (как ссылки или как значения) через границы программных модулей.

7. C # позволяет использовать при разработке парадигму атрибутивного программирования, когда в компиляционных модулях вместе с типом может сохраняться метаинформация. Это позволяет присваивать типам характеристики для описания в будущем поведения данной сущности. Данная информация впоследствии может быть получена и использована во время выполнения, причем, не запуская компонент. Работа с атрибутами позволяет использовать COM, COM + и DLL в C # приложениях, работающих в среде. NET.

8. В C # были предприняты меры для исключения ошибок при обновлении программного обеспечения. Изменение кода, в такой ситуации, может непредсказуемо изменить суть самой программы. Чтобы помочь разработчикам бороться с этой проблемой C # включает в себя поддержку совместимости версий. В частности, в отличие от C ++ и Java, если метод класса был изменен, это должно быть специально оговорено. Это позволяет обойти ошибки в коде и обеспечить гибкую совместимость версий.

9. Также новой особенностью является native -поддержка интерфейсов и наследования интерфейсов.

Недостаток: язык С# генерирует код, предназначенный для выполнения только в среде выполнения. NET. Например, невозможно использовать С # для создания классического СОМ сервера.

 

Процесс разработки и исполнения. NET приложения



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-07-25 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: