Pike
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[1]. ZastosowaniaSprawdza 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[4]. Stanowi podstawę środowiska serwerowego Opery Mini[5]. CharakterystykaPodobień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ładyPrzykł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 preprocesoraPPP – Pike PreProcessor – rozumie dyrektywy takie jak:
Plik Hello, world #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 tablicowejW przykładzie import Stdio;
int main()
{
array (string) arr;
string s;
arr = ({"He", "llo, ", "world!\n"});
foreach (arr, s)
write("%s", s);
return 0;
}
Lambda-wyrażeniaFunkcje 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 asocjacyjneW 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[200] = %s\n", map1[200]);
write("map2[map1[200]] = %s\n", map2[map1[200]]);
return 0;
}
Przypisy
Information related to Pike |