Pike


Pike w encyklopedii

Z Wikipedii, wolnej encyklopedii Przejdź do nawigacji Przejdź do wyszukiwania

Pikeinterpretowany język programowania posiadający składnię podobną do tej wykorzystywanej w C. Wywodzi się bezpośrednio z języka LPC.

Głównym zastosowaniem jest pisanie CGI dla serwera WWW Roxen, chociaż możliwe jest również pisanie aplikacji interaktywnych. Najlepiej sprawdza się w aplikacjach internetowych i przetwarzaniu napisów, natomiast podobieństwo do C powoduje, że osoby piszące wcześniej w tym języku łatwo mogą się nauczyć Pike'a.

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

Spis treści

Przykłady | edytuj kod

Przykładowy kod:

import Stdio; int main() { 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 | edytuj kod

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 | edytuj kod

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 | edytuj kod

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."

Tablice asocjacyjne | edytuj kod

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[200] = %s\n", map1[200]); write("map2[map1[200]] = %s\n", map2[map1[200]]); return 0; } 

Linki zewnętrzne | edytuj kod

Na podstawie artykułu: "Pike" pochodzącego z Wikipedii
OryginałEdytujHistoria i autorzy