Pike (programovací jazyk) - Pike (programming language)

Štika
Logo pro programovací jazyk Pike.
Paradigma multi-paradigma : objektově orientované , funkční , procedurální
Navrhl Fredrik Hübinette
Vývojář Vývojový tým Pike podporovaný divizí Software and Systems na Katedře počítačové a informační vědy (IDA) na Linköping University
Poprvé se objevil 1994 ; Před 25 lety ( 1994 )
Stabilní uvolnění
8.0.702 / 1. listopadu 2018 ; před 3 měsíci ( 01.11.2018 )
Psací disciplína statický , dynamický , manifest
OS Jakékoli Unix-like , Windows
Licence GPL / LGPL / MPL
webová stránka štika .lyzátor .liu .se
Hlavní implementace
Štika
Ovlivněno
LPC , C , C ++

Pike je interpretován , general-purpose , high-level , cross-platform , dynamický programovací jazyk s syntaxe podobný tomu C . Na rozdíl od mnoha jiných dynamických jazyků je Pike zadáván staticky i dynamicky a vyžaduje explicitní definice typů. Je vybaven systémem flexibilního typu, který umožňuje rychlý vývoj a flexibilní kód dynamicky zadávaných jazyků, přičemž stále poskytuje některé výhody staticky zadaného jazyka.

Pike nabízí sběr odpadků , pokročilé datové typy a prvotřídní anonymní funkce s podporou mnoha paradigmat programování, včetně objektově orientovaného , funkčního a imperativního programování . Pike je bezplatný software vydávaný na základě licencí GPL , LGPL a MPL .

Dějiny

Pike má své kořeny v LPC , což byl jazyk vyvinutý pro MUD . Programátoři ve společnosti Lysator ve švédském Linköpingu , zejména Fredrik Hübinette a Per Hedbor, oddělili jazyk a virtuální stroj od zbytku ovladače MUD a použili jej jako rychlý prototypovací jazyk pro různé aplikace a nazvali jej LPC4.

Licence LPC neumožňovala použití pro komerční účely, a proto byla v roce 1994 napsána nová implementace GPL s názvem µLPC (micro LPC).

V roce 1996 byl µLPC přejmenován na Pike, aby poskytl komerčně životaschopnější název. Ačkoli se název společnosti v průběhu let měnil, společnost nyní známá jako Roxen Internet Software zaměstnávala mnoho vývojářů Pike a poskytovala prostředky pro vývoj Pike. Roxen je také název webového serveru vyvinutého společností v Pike. V roce 2002 převzala laboratoř programovacího prostředí na Linköping University údržbu Pike od Roxenu. Několik programátorů Pike si našlo cestu do kanceláře Opera Software v Linköpingu , kde jazyk hraje ústřední roli v aplikacích Opera Mini na straně serveru / brány .

Hlavní vlastnosti syntaxe

Ahoj světe

Vysvětlení tradice programování „Hello World“ najdete v programu Hello world .
int main() {
    write("Hello world!\n");
    return 0;
}

Syntaxe výše vyžaduje určité vysvětlení. Ti, kteří znají C nebo C ++, by si to měli hned vyzvednout.

  • První řádek obsahuje hlavní funkci . Toto je první funkce spuštěná při spuštění programu. „Int“ před ním říká, že po ukončení funkce bude vráceno číslo typu Integer .
  • Funkce zápisu odešle řetězcový literál do standardní výstupní vyrovnávací paměti, což je ve většině případů rozhraní příkazového řádku .
  • Třetí řádek vrací číslo volajícímu funkce, v tomto případě rozhraní příkazového řádku, kde nula obvykle znamená program provedený bez chyby.
  • Složené závorky uzavřete funkce a středník odděluje příkazy (ve smyslu funkce by bylo napsáno na jednom řádku: )int main(){write("Hello world!\n");return 0;}
  • „\ N“ po „Hello world!“ je znak nového řádku .

Typy dat

Následující seznam ukazuje všechny standardní datové typy, které Pike poskytuje. V modulu ADT, který je součástí Pike, jsou k dispozici pokročilé datové typy, jako jsou sekvence, fronty, hromady, hromádky atd.

Základní datové typy:

  • int
  • plovák
  • tětiva

Typy kontejnerů:

Jiné typy:

  • program (kompilovaná reprezentace třídy)
  • objekt (instance třídy)
  • funkce

Pike vyžaduje explicitní definice typů pro všechny proměnné. Tyto informace používá k hlášení chyb typu v době kompilace. Následující kód způsobí chybu kompilace, protože hodnota proměnné „number“ musí být celé číslo, ale kód se jí pokouší přiřadit plovoucí desetinnou čárku a hodnoty řetězce.

int number;     // integer variable, it only accepts integers
number = 5.5;   // 5.5 is a floating point value, error
number = "5";   // "5" is a string, not the integer value 5, error

Tento druh chování je tradičně považován za omezující a omezující navrhovateli dynamicky psaných jazyků. Na rozdíl od C, C ++ a Java však Pike používá pružnější systém typů - konkrétně systém označených odborů . Systém umožňuje programátorům deklarovat proměnné, které mohou obsahovat hodnoty několika typů, což je ve většině jazyků rodiny C nemožné, aniž by se odchýlily od hranice bezpečného použití .

Následující příklad ukazuje proměnnou, která může obsahovat celé číslo nebo číslo s plovoucí desetinnou čárkou.

int|float number; // integer OR float variable
number = 5;       // this is legal
number = 5.5;     // this is also legal

Protože proměnnou lze deklarovat jako uchovávající mnoho různých datových typů, jsou k dispozici funkce k určení, jaký typ dat je aktuálně uložen. Tyto funkce jsou všechny ve formě typenamep, jako například intp, floatp, stringp atd.

int|float number;
number = 5;
intp(number);      // returns true because number holds an int
floatp(number);    // returns false
number = 5.5;
floatp(number);    // returns true because number now holds a float

Kromě toho existuje speciální „smíšený“ datový typ. Tato definice umožňuje proměnné uchovávat jakýkoli druh datového typu.

mixed anything;
anything = 5;    // anything is now the integer value 5
anything = 5.5;  // anything is now the float value 5.5
anything = "5";  // anything is now the string value "5"

Aby bylo možné převést hodnotu z jednoho typu na jiný, může Pike použít explicitní obsazení:

mixed anything;
anything = (int)5.5;         // anything is now the integer value 5
anything = (string)anything; // anything is now the string value "5"

Viz také

Reference

externí odkazy