Pike – interpretowany język programowania o składni zbliżonej do języka C.

Początkowo od 1994 funkcjonował pod nazwą µLPC jako stworzona przez szwedzkiego programistę, Fredrika Hübinette reimplementacja języka LPC z bardziej permisywną licencją. Nazwa Pike została przyjęta ok. 1996 roku ze względów marketingowych. W 2002 firma Roxen, w której pracował Hübinette, przekazała prawa do języka Uniwersytetowi Linköping.

Zastosowania Sprawdza się w zastosowaniach internetowych i szybkim przetwarzaniu tekstu. Jest bazowym językiem systemu zarządzania treścią rozwijanego przez szwedzką firmę Roxen AB na bazie serwera o tej samej nazwie. Stanowi podstawę środowiska serwerowego Opery Mini.

Charakterystyka Podobieństwo do C/C++ sprawia, że osoby piszące wcześniej w tych językach łatwo się go uczą.

Pike zawiera wiele zaawansowanych struktur danych, takich jak zbiory, typowane tablice asocjacyjne oraz wyrażenia lambda.

Przykłady Przykładowy kod: import Stdio;

int main() {historia string name; write("Hello, world !\nWhat's your name ?\n"); sscanf(stdin->gets(), "%s", name); write("Hello, %s\n", name); return 0; }

Przykład użycia preprocesora PPP – Pike PreProcessor – rozumie dyrektywy takie jak: #define – tak samo jak w C #include – włączyć zawartość pliku #string – włączyć zawartość pliku jako łańcuch tekstowy dyrektywy kompilacji warunkowej

Plik ppp.inc: Hello, world

Plik wykonywalny: #define foo bar #define i(j) import j;

i(Stdio);

int main() { string foo = #string "ppp.inc"; write ("%s", bar); return 0; }

Przykład zmiennej tablicowej W przykładzie arr to tablica dowolnych rozmiarów złożona ze zmiennych typu string:

import Stdio;

int main() { array (string) arr; string s;

arr = ({"He", "llo, ", "world!\n"});

foreach (arr, s) write("%s", s); return 0; }

Lambda-wyrażenia Funkcje można zwracać albo tak jak w C, albo za pomocą notacji lambda.

import Stdio;

string foo () { return "Ala"; }

string bar () { return " ma "; }

function f (int i) { return i ? foo : bar; }

function g (int i) { return (i ? ( lambda() {return "kota";} ): ( lambda() {return ".\n";} )); }

int main() { write("%s", f (1)()); write("%s", f (0)()); write("%s", g (1)()); write("%s", g (0)()); return 0; }

Program wypisze na standardowym wyjściu "Ala ma kota."historia

Tablice asocjacyjne W Pike można używać tablic asocjacyjnych.

import Stdio;

int main() { mapping (int: string) map1; mapping (string: string) map2;

map1 = ([100:"ala", 200:"ma", 300:"kota"]); map2 = (["ma":"kota", "kot":"pies", "kasia":"basia"]);

write("map1 = %s\n", map1); write("map2[map1] = %s\n", map2[map1]); return 0; }

Przypisy

Kategoria:Języki skryptowe