Файл: Современные языки программирования. Основные понятия программирования..pdf
Добавлен: 27.06.2023
Просмотров: 56
Скачиваний: 2
Популярные веб-приложения
С использованием PHP разработано множество приложений, которые широко используются на различных сайтах, форумах и блогах. Наиболее известные из них — Wordpress, Drupal, Joomla, MediaWiki, phpBB.
Язык программирования Perl
Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language «практический язык для извлечения данных и составления отчётов». Первоначально аббревиатура состояла из пяти символов и в таком виде в точности совпадала с английским словом pearl,жемчужина. Но затем стало известно, что такой язык существует и букву «а» убрали. Талисманом языка Perl является верблюд — не слишком красивое, но очень выносливое животное, способное выполнять тяжёлую работу. Согласно Ларри Уоллу, Perl имеет два девиза. Первый — «There’s more than one way to do it» («Есть больше одного способа сделать это», также известный как TMTOWTDI); второй — «Easy things should be easy and hard things should be possible» («Простые вещи должны быть простыми, а сложные вещи — возможными»). Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе реализованные при помощи регулярных выражений. Перл унаследовал много свойств от языков Си, shell scriptawk. Perl также знаменит огромной коллекцией дополнительных модулейCPAN, находящейся по адресу http://www.cpan.org(англ.).
Текущая версия и разработка
Сегодня основной для разработчиков является пятая версия языка Perl, однако (на некоторых веб-серверах) продолжают использоваться программы (скрипты), написанные на предыдущей — четвёртой — версии (из-за частичной обратной несовместимости). Фактически стандарт языка определяется реализацией интерпретатора. С 2000 года идет разработка новой (6-ой) версии языка. В отличие от предыдущих версий, разработчики планируют создать четко определенный стандарт языка. В настоящее время существуют экспериментальные компиляторы Perl 6, но продолжается дальнейшая дискуссия о новых правилах. На русском языке информация о новой версии языка доступна на сайте http://perl6.ru/.
Языки программирования и оболочки со схожими технологиями
Perl — далеко не единственный язык, дающий богатые возможности в обработке текста. Языки программирования РЕФАЛ, Icon и Снобол предоставляют возможность использовать более полно метод программирования «сопоставления с образцом», частным случаем которого и являются регулярные выражения. Существует также полноценный shell, использующий в качестве основы язык Perl. Называется он psh и даёт возможность смешивать команды обычного шелла и самого Perl’а.
- Язык программирования Delphi
Delphi (по-русски обычно произносят [дэ́льфи] или [дэ́лфи]) — интегрированная среда разработки ПО фирмы Borland. Delphi является средой RAD (от англ. rapid application development — быстрая разработка приложений).
- CodeGear
Borland объявила о намерениях продать подразделения, занимающиеся средствами разработки и сервером баз данных InterBase, выделив их в дочернюю компанию CodeGear, которая 1 июля 2008 года была продана малоизвестной компании Embarcadero Technologies (англ.). Текущая, тринадцатая по счёту, версия носит название «Delphi 2010» и является частью продукта под названием «CodeGear RAD Studio 2010». В этой версии поддерживаются языки программирования Delphi и C++. Среда разработана в соответствии с концепцией визуального программирования. Библиотека визуальных объектов «Borland» получила название Visual Component Library (VCL).
- Delphi for PHP
В марте 2007 года CodeGear выпустила среду разработки Delphi for PHP, предназначенную для разработки веб-приложений на языке программирования PHP. Теперь среда Delphi ориентирована не только на язык Delphi. Текущая версия Delphi for PHP — 2009.
- Delphi for .NET
Delphi for .NET — среда разработки Delphi, а также язык Delphi, ориентированные на разработку приложений для .NET.
Первая версия полноценной среды Delphi для .NET — Delphi 8. Среда позволяет писать приложения только для .NET. В Delphi 2005 можно писать приложения для .NET, используя стандартную библиотеку классов .NET и VCL для .NET. Среда позволяет писать .NET-приложения на C#. Delphi 2005 также позволяет писать обычные приложения с использованием библиотек VCL и CLX. Delphi 8, 2005, 2006 используют Microsoft .NET Framework версии 1.1. Delphi for .NET 2007, включённая в состав CodeGear RAD Studio 2007, разработана для Microsoft .NET Framework 2.0.
Delphi 2010
25 августа 2009 года компания Embarcadero Technologies объявила о выпуске интегрированной среды разработки Embarcadero Rad Studio 2010, в которую вошла новая версия Delphi 2010.
- Ruby (англ. ruby — рубин, произносится ['ru:bɪ] — ру́би) — динамический, рефлективный, интерпретируемыйвысокоуровневый язык программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями.
По особенностям синтаксиса он близок к языкам Perl и Eiffel, по объектно-ориентированному подходу — к Smalltalk. Также некоторые черты языка взяты из Python, Lisp, Dylan и Клу.
Кроссплатформенная реализация интерпретатора языка является полностью свободной.
Ruby — полностью объектно-ориентированный язык. В нём все данные являются объектами, в отличие от многих других языков, где существуют примитивные типы. Каждая функция — метод.
Ruby является мультипарадигменным языком: он поддерживает процедурный стиль (определение функций и переменных вне классов), объектно-ориентированный (всё — объект), функциональный (анонимные функции, замыкания, возврат значения всеми инструкциями, возврат функцией последнего вычисленного значения). Он поддерживает отражение, метапрограммирование, информацию о типах переменных на стадии выполнения.
- Python; в русском языке распространено название пито́н ) — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен.
Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное.
Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных.
Python поддерживает динамическую типизацию, то есть тип переменной определяется только во время исполненияимеются встроенные типы: булевый, строка, Unicode-строка, целое число произвольной точности, число с плавающей запятой, комплексное число и некоторые другие. Из коллекций в Python встроены: список, кортеж (неизменяемый список), словарь, множество и другие. Все значения являются объектами, в том числе функции, методы, модули, классы.
Python построен вокруг объектно-ориентированной модели программирования. Реализация ООП в Python является элегантной, мощной и хорошо продуманной, но вместе с тем достаточно специфической по сравнению с другими объектно-ориентированными языками.
Возможности и особенности.
Классы являются одновременно объектами со всеми ниже приведёнными возможностями.
Наследование, в том числе множественное.
Полиморфизм (все функции виртуальные).
Инкапсуляция (два уровня — общедоступные и скрытые методы и поля). Особенность — скрытые члены доступны для использования и помечены как скрытые лишь особыми именами.
Специальные методы, управляющие жизненным циклом объекта: конструкторы, деструкторы, распределители памяти.
Перегрузка операторов (всех, кроме is, '.', '=' и символьных логических).
Свойства (имитация поля с помощью функций).
Управление доступом к полям (эмуляция полей и методов, частичный доступ, и т. п.).
Методы для управления наиболее распространёнными операциями (истинностное значение, len(), глубокое копирование, сериализация, итерация по объекту, …)
Метапрограммирование (управление созданием классов, триггеры на создание классов, и др.)
Полная интроспекция.
Классовые и статические методы, классовые поля.
Классы, вложенные в функции и классы.
- Python поддерживает парадигму функционального программирования, в частности:
функция является объектом;
функции высших порядков;
рекурсия;
развитая обработка списков (списочные выражения, операции над последовательностями, итераторы);
аналог замыканий;
частичное применение функции;
возможность реализации других средств на самом языке (например, карринг).
- JavaScript — прототипно-ориентированный сценарный язык программирования. Является реализацией языка ECMAScript (стандарт ECMA-262).
JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.JavaScript используется в клиентской части веб-приложений: клиент-серверных программ, в котором клиентом является браузер, а сервером— веб-сервер, имеющих распределённую между сервером и клиентом логику,
также этот язык используется на стороне серевера, с применением дополнительных библиотек к языку, которые предоставляют большие возможности для разработки.
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.
JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания— что придаёт языку дополнительную гибкость.
Синтаксис языка JavaScript во многом напоминает синтаксис Си и Java, семантически же язык гораздо ближе к Self, Smalltalk или даже ЛиспуНесмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:
- объекты, с возможностью интроспекции;
- функции как объекты первого класса;
- автоматическое приведение типов;
- автоматическая сборка мусора;
- анонимные функции.
В языке отсутствуют такие полезные вещи, как:
модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;
стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода-вывода, базовых типов для бинарных данных;
стандартные интерфейсы к веб-серверам и базам данных;
система управления пакетами которая бы отслеживала зависимости и автоматически устанавливала их.
- Rust (англ. rust — ржавчина, произносится [rʌst] — раст) — мультипарадигмальный компилируемый язык программирования общего назначения, спонсируемый Mozilla Research, поддерживающий функциональное программирование, модель акторов и процедурное программирование. Объектно-ориентированное программирование как таковое языком не поддерживается, но язык позволяет реализовать большинство понятий ООП при помощи других абстракций, например, типажей.
При разработке языка Rust разработчики сосредоточились на трёх задачах: безопасность, скорость и параллелизм. Он пригоден для системного программирования и сопоставим по скорости и возможностям с C++, однако даёт большую безопасность при работе с памятью, что обеспечивается механизмами ограничения
Особенности языка:
- Сильная статическая типизация.
- Обобщённое программирование с поддержкой параметрического полиморфизма.
- Автоматический вывод типов для локальных переменных (при явном указании типов функций).
- Поддержка единичных типов данных (англ. unit type), которые имеют ровно один экземпляр и не занимают места в памяти.
Примеры:
пустой кортеж ();
пустой массив (напр. [u8; 0]);
структура без полей (напр. struct Foo).
Поддержка пустых типов данных (англ. empty type), экземпляры которых не могут быть созданы. Реализованы в виде перечисляемых типов, не имеющих вариантов: enum Void {}.
Синтаксис Rust похож на Си и C++ с блоками кода, разделёнными фигурными скобками, и такими управляющими ключевыми словами, как if, else, while, и for; комментарии также пишутся в С-формате; имена модулей разделяются двумя символами двоеточия (::).
- Swift — открытый мультипарадигмальный компилируемый язык программирования общего назначения. Создан компанией Apple в первую очередь для разработчиков iOS и OS X,совместим с основной кодовой базой Apple, написанной на Objective-C. Swift задумывался как более легкий для чтения и устойчивый к ошибкам программиста язык, нежели предшествовавший ему Objective-C[7]. Программы на Swift компилируются при помощи LLVM, входящей в интегрированную среду разработки Xcode 6 и выше
Swift заимствовал довольно многое из Objective-C, однако он определяется не указателями, а типами переменных, которые обрабатывает компилятор. По аналогичному принципу работают многие скриптовые языки. В то же время, он предоставляет разработчикам многие функции, которые прежде были доступны в C++ и Java, такие как определяемые наименования, так называемые обобщения и перегрузка операторов.