Пайк (язык программирования) - Википедия - Pike (programming language)

Щука
Логотип для языка программирования Pike.
ПарадигмаМультипарадигма: объектно-ориентированный, функциональный, процедурный
РазработаноФредрик Хюбинетт
РазработчикКоманда разработчиков Pike поддерживается отделом программного обеспечения и систем факультета компьютерных и информационных наук (IDA) Университета Линчёпинга.
Впервые появился1994; 26 лет назад (1994)
Стабильный выпуск
8.0.702 / 1 ноября 2018 г.; 2 года назад (2018-11-01)
Печатная дисциплинаСтатический, динамичный, манифест
Операционные системыЛюбой Unix-подобный, Windows
ЛицензияGPL /LGPL /MPL
Интернет сайтщука.lysator.liu.se Отредактируйте это в Викиданных
Основной реализации
Щука
Под влиянием
LPC, C, C ++

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

Особенности щуки вывоз мусора, расширенные типы данных и анонимные функции первого класса с поддержкой многих парадигм программирования, включая объектно-ориентированный, функциональный и императивное программирование. Щука бесплатно программное обеспечение, выпущенный под GPL, LGPL и MPL лицензии.

История

Щука имеет свои корни в LPC, который был разработан для Грязи. Программисты на Лизатор в Linköping, Швеция, прежде всего Фредрик Хубинетт и Пер Хедбор,[1] отделил язык и виртуальную машину от остальной части драйвера MUD и использовал его в качестве языка быстрого прототипирования для различных приложений, назвав его LPC4.

Лицензия LPC не позволяла использовать его в коммерческих целях, поэтому в 1994 году была написана новая реализация GPL, названная µLPC (micro LPC).

В 1996 году µLPC была переименована в Pike, чтобы обеспечить более рентабельное название. Хотя название компании с годами изменилось, компания, ныне известная как Roxen Internet Software, наняла множество разработчиков Pike и предоставила ресурсы для разработки Pike. Роксен это также название веб-сервера, разработанного компанией в Пайке. В 2002 г. лаборатория среды программирования при г. Линчёпингский университет взял на себя обслуживание Pike от Roxen. Несколько программистов Pike нашли свой путь в офис Linköping Программное обеспечение Opera, где язык играет центральную роль в серверных / шлюзовых частях опера мини заявление.[2]

Особенности синтаксиса

Привет, мир

Для объяснения традиции программирования «Hello World» см. Привет, мир программа.
int главный() {    записывать("Привет, мир! п");    возвращаться 0;}

Синтаксис выше требует некоторых пояснений. Тем, кто знаком с C или же C ++ следует забрать его сразу.

  • Первая строка содержит основная функция. Это первая функция, выполняемая при запуске программы. "Int" перед ним указывает, что число типа Целое число будет возвращено, когда функция завершится.
  • Функция записи отправляет строковый литерал в стандартный выходной буфер, который в большинстве случаев является Интерфейс командной строки.
  • Третья строка возвращает номер вызывающей функции, в данном случае Интерфейс командной строки где ноль обычно означает, что программа выполняется без ошибок.
  • Фигурные скобки заключают функцию, а точка с запятой разделяет операторы (что означает функция можно было написать в одной строке: int главный(){записывать("Привет, мир! п");возвращаться 0;})
  • " N" после "Hello world!" это новая линия персонаж.

Типы данных

В следующем списке показаны все стандартные типы данных, которые предоставляет Pike. Расширенные типы данных, такие как последовательности, очереди, кучи, стеки и т. Д., Доступны в модуле ADT, который входит в состав Pike.

Основные типы данных:

  • int
  • плавать
  • нить

Типы контейнеров:

Другие типы:

  • программа (скомпилированное представление класса)
  • объект (экземпляр класса)
  • функция

Pike требует явных определений типов для всех переменных. Он использует эту информацию для сообщения об ошибках типа во время компиляции. Следующий код вызовет ошибку компиляции, потому что значение переменной «число» должно быть целым числом, но код пытается присвоить ему значения с плавающей запятой и строковые значения.

int номер;     // целочисленная переменная, принимает только целые числаномер = 5.5;   // 5.5 - значение с плавающей запятой, ошибканомер = "5";   // "5" - это строка, а не целое число 5, ошибка

Такое поведение традиционно считается ограничивающим и ограничивающим сторонниками динамически типизированных языков. Однако в отличие от C, C ++ и Java, Pike использует более гибкую систему типов, а именно систему отмеченные союзы. Система позволяет программистам объявлять переменные, которые могут содержать значения нескольких типов, что невозможно в большинстве языков C-семейства, не выходя за границы безопасное использование.

Ниже показана переменная, которая может содержать целое число или число с плавающей запятой.

int|плавать номер; // целое ИЛИ переменная с плавающей запятойномер = 5;       // это законнономер = 5.5;     // это тоже законно

Поскольку переменная может быть объявлена ​​как содержащая множество различных типов данных, предоставляются функции для определения того, какой тип данных хранится в настоящее время. Все эти функции имеют форму typenamep, например intp, floatp, stringp и т. Д.

int|плавать номер;номер = 5;intp(номер);      // возвращает true, потому что number содержит intпоплавок(номер);    // возвращает falseномер = 5.5;поплавок(номер);    // возвращает истину, потому что число теперь содержит число с плавающей запятой

Кроме того, существует специальный «смешанный» тип данных. Это определение позволяет переменной содержать любой тип данных.

смешанный что-либо;что-либо = 5;    // теперь все равно целочисленное значение 5что-либо = 5.5;  // теперь все что угодно является значением с плавающей запятой 5.5что-либо = "5";  // теперь строковое значение "5"

Чтобы преобразовать значение из одного типа в другой, Pike может использовать явное приведение:

смешанный что-либо;что-либо = (int)5.5;         // теперь все равно целочисленное значение 5что-либо = (нить)что-либо; // теперь строковое значение "5"

Смотрите также

Рекомендации

  1. ^ «История щуки».
  2. ^ Лекстрейт, Винсент (январь 2010 г.). "Маяк языков программирования, v10.0". Архивировано из оригинал 30 мая 2012 г.. Получено 14 марта 2010.

внешняя ссылка