Pike
![]() | Ten artykuł dotyczy języka programowania. Zobacz też: inne znaczenia. |
![]() Logo języka | |
Pojawienie się | 1994[1] |
---|---|
Paradygmat | wieloparadygmatowy (m.in. obiektowy, imperatywny) |
Aktualna wersja stabilna | 8.0.1116 |
Twórca | Fredrik Hübinette[1] |
Licencja | |
Platforma sprzętowa | IA-32, amd64, ARM, PowerPC, RISC-V[3] |
Platforma systemowa | Linux, Mac OS X, Windows, SunOS[3] |
Strona internetowa |
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].
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[4]. Stanowi podstawę środowiska serwerowego Opery Mini[5].
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
#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[200] = %s\n", map1[200]); write("map2[map1[200]] = %s\n", map2[map1[200]]); return 0; }
Przypisy
- ↑ a b c History. [dostęp 2021-06-02]. (ang.).
- ↑ Pike Home. [dostęp 2021-06-02]. (ang.).
- ↑ a b Download – Pike Programming Language. [dostęp 2021-06-02]. (ang.).
- ↑ About. [dostęp 2021-06-02]. (ang.).
- ↑ Vincent Lextrait: The Programming Languages Beacon, v10.0. styczeń 2010. [dostęp 2010-03-14]. [zarchiwizowane z tego adresu (30 maja 2012)]. (ang.).