Pętla (informatyka) – Wikipedia, wolna encyklopedia
Pętla – jedna z trzech podstawowych konstrukcji programowania strukturalnego (obok instrukcji warunkowej i instrukcji wyboru). Umożliwia cykliczne wykonywanie ciągu instrukcji określoną liczbę razy, do momentu zajścia pewnych warunków, dla każdego elementu kolekcji lub w nieskończoność.
Pętle licznikowe
[edytuj | edytuj kod]Zawartość pętli licznikowych bądź iteracyjnych wykonuje się ustaloną liczbę razy. W najprostszym przypadku na początku pętli specjalna zmienna sterująca (licznikowa) jest ustawiana na wartość początkową, następnie przy każdym obiegu pętli jej wartość jest zwiększana o jeden, aż do osiągnięcia górnego limitu. Często pętla taka może odliczać w dół lub zmienna może być modyfikowana o wartość inną niż 1. Przykładami są tutaj pętle for
z takich języków jak Pascal[1][2], Ada[3] (ale nie C[4][5] i C-podobne[6]).
Pętle warunkowe
[edytuj | edytuj kod]Ogólniejszą konstrukcją jest pętla warunkowa, nazywana również repetycyjną, która jest wykonywana, aż do odpowiedniej zmiany warunków. Przeważnie wyrażenie testujące sprawdzane jest na początku lub na końcu pętli. W niektórych językach (C-podobne) pętla jest wykonywana dopóki warunek jest spełniony[4][5][6], w innych, np. w Pascalu pętla repeat...until
, dopóki warunek nie jest spełniony[1][2]. Przykładami są instrukcje while, do...while, repeat...until
[1][2][4][5][6].
Istnieją języki w których warunek (lub warunki) zakończenia mogą być umieszczone wewnątrz pętli na przykład w Adzie pętla loop
z konstrukcją exit when
[3].
Pętla ogólna
[edytuj | edytuj kod]To pętla stosowana w językach rodziny C[4][5] i C-podobnych, jak np. C++[6]. Umożliwia definiowanie zarówno pętli repetycyjnej (ze sprawdzeniem warunku na początku pętli), jak i pętli iteracyjnej, jednak w porównaniu do niej pętla ta definiowana jest na niższym poziomie abstrakcji, co oznacza, że programista musi sam definiować warunek jej zakończenia i operację zmiany wartości zmiennej sterującej przy kolejnym przebiegu pętli.
Pętle „po kolekcji”
[edytuj | edytuj kod]Często pożądane jest, aby instrukcje pętli zostały wykonane dla każdego elementu tablicy, kolekcji itp. Można to zrobić za pomocą powyższych pętli, ale często szybszym i bardziej przejrzystym sposobem jest użycie pętli typu foreach
, która zwalnia programistę z obowiązku ręcznego iterowania po kolekcji.
Pętla o określonej liczbie powtórzeń
[edytuj | edytuj kod]W pewnych językach programowania zdefiniowano w ich składni konstrukcję pętli, w której programista podaje ilość powtórzeń iteracji. Nie specyfikuje się przy tym ani zmiennej sterującej, ani wartości początkowej i końcowej licznika, co stanowi zasadniczą różnicę w stosunku do pętli iteracyjnej (licznikowej).
Cobol[7][8] | Jean[9][10] | Logo[11] |
---|---|---|
|
|
|
Pętla nieskończona
[edytuj | edytuj kod]W niektórych zastosowaniach, np. systemy operacyjne, serwery, środowiska sterowane zdarzeniami pożądane jest, aby główna pętla wykonywała się praktycznie w nieskończoność. Można to uzyskać wstawiając do pętli warunkowej odpowiedni niezmienny warunek, ale niektóre języki dostarczają środków, którymi można wyrazić to bezpośrednio np. w języku Ada[3], Forth[12][13], Icon[14].
Inne konstrukcje
[edytuj | edytuj kod]Istnieją także języki programowania zawierające w swojej składni instrukcje pętli zrywające z podanym wyżej podziałem. Przykładem takiego języka jest PL/1 i zdefiniowana w nim instrukcja DO
. Instrukcja ta może (ale nie musi) zostać użyta z odpowiednimi frazami, definiującymi szczegółowo sposób iteracji, przy czym poszczególne frazy mogą być ze sobą zestawiane łącznie, co umożliwia bardziej złożone sterowanie w programie. I tak[15][16]:
- instrukcja blokowa (grupująca):
DO; ... END;
- pętla iteracyjna
DO I=''w_p'' TO ''w_k'' BY ''step'', ''w_p1'' TO ''w_p2'' BY ''step2'', ...; ... END;
przy czym frazy TO
oraz BY
są opcjonalne, można więc podać listę wartości, którą ma przyjmować zmienna sterująca, a przecinek umożliwia definicję kontynuacji iteracji dla kolejnego zestawu wartości.
- pętla repetycyjna
DO WHILE ''warunek''; ... END;
DO UNTIL ''warunek''; ... END;
DO REPEAT ''wyrażenie''; ... END;
- pętla złożona – możliwość składania poszczególnych fraz iteracyjnych i repetycyjnych, np.
DO WHILE C>A, I=1 TO 20 BY 3 UNTIL A<B, 31, 32, 36, 39 TO 41, REPEAT A/2 WHILE A>3; ... END;
Modyfikowanie przebiegu pętli
[edytuj | edytuj kod]Z pętlami w językach programowania związane są konstrukcje programistyczne umożliwiające modyfikowanie standardowego przebiegu realizacji pętli. Modyfikacja ta dotyczy takich elementów jak zmiana wartości zmiennej sterującej, wyjście z pętli, przejście do kolejnej iteracji itp. Do modyfikowania przebiegu realizacji pętli służą:
- albo istniejące danym języku konstrukcje, tj. instrukcje, które są stosowane także poza pętlą, np.:
- przypisanie: zmiana wartości zmiennej sterującej,
- instrukcja skoku: wyjście z pętli,
- albo specjalne konstrukcje dedykowane tylko do modyfikacji działania pętli, tj. takie które mogą być stosowane tylko w obrębie pętli, np.
- instrukcja opuszczenia,
- instrukcja kontynuacji,
- instrukcja powtórzenia bieżącej iteracji,
- instrukcja pomijania określonych iteracji.
Instrukcje modyfikujące działanie pętli wymienione w drugiej grupie, zostały opracowane i uwzględnione w definicjach języków programowania, jako substytut instrukcji skoku, której użycie jest krytykowane w literaturze przedmiotu. Każda z operacji realizowanych przez tę grupę instrukcji może bowiem zostać zrealizowana za pomocą instrukcji skoku i etykiety umieszczonej w określonym miejscu. Instrukcja skoku pozwala w przeciwieństwie do tych instrukcji na przejście do dowolnego miejsca, natomiast instrukcje modyfikujące pętle z góry narzucają miejsce, do którego nastąpi przekazanie sterowania, co w pewnym stopniu zwiększa czytelność programu (kodu źródłowego) w porównaniu do instrukcji skoku[17].
Przykład – pętla iteracyjna
[edytuj | edytuj kod]Poniżej przykład pętli w języku Pascal:
var licznik : integer; begin for licznik := 1 to 10 do WriteLn('Wiersz numer ', licznik); end.
Przykład w C++ jako wariant pętli ogólnej:
for (int i = 0; i < 10; ++i) std::cout << i << "-ta iteracja." << std::endl;
Przykład w C jako wariant pętli ogólnej:
int i; for (i = 0; i < 10; ++i) printf("%d-ta iteracja.\n", i);
Przykład w PHP:
for ($i = 0; $i < 10; ++$i) echo $i . "-ta iteracja.<br />\n";
Przykład w JavaScripcie:
var i; for (i = 0; i < 10; ++i) document.write(i + "-ta iteracja.<br />");
Przykład w VB6 z Textboxem
Dim i As Integer Text1.Text = "" For i = 0 To 10 Text1.Text = Text1.Text & i Next i
Przykład w VB6 z Debugwindow
Dim i As Integer For i = 0 To 10 Debug.Print i Next i
Przykład w Pythonie:
for i in range(1, 10): print(i, '. iteracja', sep = '')
Pętle w językach programowania
[edytuj | edytuj kod]język programowania | pętla | specjalne konstrukcje modyfikujące pętle | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
iteracyjna | repetycyjna | ogólna | po kolekcji | powtórzeniowa | złożona | nieskończona | opuszczenia | kontynuacji | powtórzenia | pomijania | |
ABAP[18] | |||||||||||
Ada[3][19] | |||||||||||
ALGOL 60[7][20][21] | |||||||||||
ALGOL 68[7][22] | |||||||||||
APL[a][23] | |||||||||||
AWK[24] | |||||||||||
B[25] | |||||||||||
Basic[26][27][28][29] | | [b] | ||||||||||
BCPL[30] | | [c] | ||||||||||
Boo[31] | |||||||||||
C[4][5][6][32] | [d] | ||||||||||
C++[6] | [d] | ||||||||||
C--[a][33] | |||||||||||
C#[34][35] | |||||||||||
Clipper[36] | |||||||||||
Cobol[8][37] | |||||||||||
Comal[26] | |||||||||||
D[38][39][40] | |||||||||||
dBase[41][42], FoxBase[41] | |||||||||||
Eiffel[43][44][45] | |||||||||||
Forth[e][12][13][26][46][47] | | [c] | ||||||||||
Fortran IV, 66[7][20] | |||||||||||
Fortran 77[48] | |||||||||||
Fortran 90/95[49][50][51] | |||||||||||
Icon[14] | |||||||||||
Java[52][53][54] | |||||||||||
JavaScript[55][56] | |||||||||||
Jean[9][10] | |||||||||||
Logo[26][11] | |||||||||||
MCPL[57] | | [c] | ||||||||||
Modula-2[58] | |||||||||||
Oberon[59] | |||||||||||
Pascal[26][1][2] | |||||||||||
Perl[60][61][62] | |||||||||||
PHP[63][64][65] | |||||||||||
PL/I[7][15][16] | |||||||||||
PL/M[66][67] | |||||||||||
Prolog[f][26][68] | |||||||||||
Python[69][70][71][72] | |||||||||||
REXX[73][74] | | | ||||||||||
Ruby[75][76][77][78] | |||||||||||
Simula 67[79] | |||||||||||
Snobol[f][80] | |||||||||||
Turbo Pascal[2] | |||||||||||
Visual Basic[81][82], VBA[83] |
Uwagi
[edytuj | edytuj kod]- ↑ a b W językach niskiego poziomu oraz asemblerowych językach wysokiego poziomu, oraz innych nielicznych językach, przy braku odpowiednich konstrukcji specjalnych (np. braku instrukcji pętli), programowanie odpowiedniego sterowania realizuje się w kodzie źródłowym za pomocą innych konstrukcji sterujących, np. instrukcji warunkowych i skoku; jest to także możliwe w pozostałych językach programowania (także w tych, w których dostępne są odrębne konstrukcje, takie jak instrukcje pętli), lecz przez literaturę przedmiotu zdecydowanie niezalecane.
- ↑ Od momentu opracowania języka Basic powstało wiele jego implementacji i wersji różniących się między sobą. Duża część tych implementacji, szczególnie wczesnych, nie zawierała w swoim repertuarze konstrukcji pętli repetycyjnej. Dopiero kolejne wersje języka zawierały pętle warunkowe np.
while warunek ... wend
, która jako zaszłość w Visual Basic-u została zastąpiona konstrukcjądo ... loop
. - ↑ a b c Dana konstrukcja modyfikująca działanie pętli w określonym języku jest dostępna wyłącznie dla wybranego rodzaju pętli, a nie dostępna dla pozostałych rodzajów.
- ↑ a b W językach C, C++ i pochodnych, istnieje pętla for(;;), za pomocą której można realizować pętle iteracyjne w zbliżony sposób jak w pętli iteracyjnej, lecz jest to pętla bardziej ogólna, na niższym poziomie abstrakcji, w którym implementacja działań wymaganych dla pętli iteracyjnej należy do programisty, jawnie w kodzie źródłowym, w związku z czym literatura przedmiotu nie zalicza tego rodzaju pętli do tej kategorii konstrukcji programistycznych jakim są pętle iteracyjne.
- ↑ Jedną z podstawowych idei języka FORTH jest jego rozszerzalność. W języku tym można więc definiować (za pomocą instrukcji niskopoziomowych skoków warunkowych i bezwarunkowych, o adresacji bezwzględnej i względnej) nowe instrukcje sterujące, w tym instrukcje pętli oraz instrukcje modyfikujące działanie pętli. Zdefiniowane instrukcje poddawane są natychmiastowej kompilacji, umieszczane we wskazanym słowniku i dostępne tak samo jak standardowe instrukcje sterujące. Można więc stworzyć nowe instrukcje obejmujące pozostałe przypadki pętli i instrukcji modyfikujących.
- ↑ a b W językach takich jak Snobol czy Prolog realizacja wielokrotnych operacji wykonywana jest automatycznie przez odpowiedni mechanizm: w Snobolu jest to mechanizm uzgadniania z wzorcem oraz skoki warunkowe i bezwarunkowe, w Prologu jest to aparat wnioskowania, którego działanie może być modyfikowane przez specjalne predykaty, ich działanie jest analogiczne do odpowiednich instrukcji dostępnych w imperatywnych językach programowania, a tym samym mają (np. w Turbo Prolog) analogiczne nazwy (identyfikatory).
Przypisy
[edytuj | edytuj kod]- ↑ a b c d Michał Iglewski , Jan Madey , Stanisław Matwin , Pascal. Język wzorcowy – Pascal 360, wyd. trzecie – zmienione, Warszawa: Wydawnictwa Naukowo-Techniczne, 1984 (Biblioteka Inżynierii Oprogramowania), ISBN 83-85060-53-7, ISSN 0867-6011 (pol.).
- ↑ a b c d e Andrzej Marciniak, Borland Pascal 7.0, Poznań: Nakom, 1994 (Biblioteka Użytkownika Mikrokomputerów), ISBN 83-85060-53-7, ISSN 0867-6011 (pol.).
- ↑ a b c d A. Nico Habermann, Dewayne E. Perry: Ada dla zaawansowanych. Warszawa: Wydawnictwa Naukowo-Techniczne, 1989, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1058-4. (pol.).
- ↑ a b c d e Brian W. Kernighan, Dennis M. Ritche: Język C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1067-3. (pol.).
- ↑ a b c d e Jan Bielecki: Turbo C z grafiką na IBM PC. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Mikrokomputery. ISBN 83-204-1101-7. (pol.).
- ↑ a b c d e f Jan Bielecki: Od C do C++, programowanie obiektowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990. ISBN 83-204-1332-X. (pol.).
- ↑ a b c d e John E. Nicholls: Struktura języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Informatyka. ISBN 83-204-0246-8. (pol.).
- ↑ a b Eugeniusz Kurzydrem, Andrzej Macieliński, Urszula Szmidt, Eugeniusz Więcek: COBOL. Język programowania. Wyd. drugie. Warszawa: Państwowe Wydawnictwo Ekonomiczne, 1978. (pol.).
- ↑ a b Jerzy Bettek, Bronisław Rudak, Barbara Rudakowa: Język konwersacyjny JEAN. Wrocław: Wydawnictwo Politechniki Wrocławskiej, 1975, seria: Skrypt wydany w serii Biblioteka WASC. (pol.).
- ↑ a b Kazimierz Orlicz: Język konwersacyjny JEAN z elementami programowania w Fortranie. Wrocław: Wydawnictwo Politechniki Wrocławskiej, 1977, seria: Skrypt wydany w serii Biblioteka WASC. (pol.).
- ↑ a b Stanisław Waligórski: LOGO na Sinclair Spectrum. Instytut Wydawniczy Związków Zawodowych, seria: Seria 12+12=102. (pol.).
- ↑ a b Jan Bielecki: Język FORTH. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Mikrokomputery. ISBN 83-204-0930-6. (pol.).
- ↑ a b Jan Ruszczyc: Poznajemy FORTH. Warszawa: SOETO, 1987, seria: Informatyka mikrokomputerowa. (pol.).
- ↑ a b Ralph E. Griswold, Madge T. Griswold: Icon. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0871-7. (pol.).
- ↑ a b Jan Bielecki: Rozszerzony PL/I i JCL w systemie OS/RIAD. Warszawa: Państwowe Wydawnictwo Naukowe, 1986, seria: Biblioteka Informatyki. ISBN 83-01-06146-4. (pol.).
- ↑ a b M. I. Auguston i inni: Programowanie w języku PL/1 OS JS. Warszawa: Państwowe Wydawnictwo Naukowe, 1988. ISBN 83-01-07463-9. (pol.).
- ↑ Michael Marcotty, Henry Ledgord, tłumaczenie: Krystyna Jerzykiewicz: W kręgu języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1342-7. (pol.).
- ↑ Loops. [w:] ABAP Programming (BC-ABA) [on-line]. help.sap.com – SAP Library. [dostęp 2011-08-03]. (ang.).
- ↑ Michał Morawski, Antoni M. Zajączkowski: Wstep do programowania w języku Ada’95. Wyd. drugie. Łódź: 2004. [dostęp 2011-01-29]. (pol.).
- ↑ a b Joanna Jonkisz, Jan Makuch, Stanisław Starzak: Programowanie w językach Algol 60 i Fortran 1900. Łódź: Wydawnictwo Politechniki Łódzkiej, Politechnika Łódzka, Ośrodek Elektronicznej Techniki Obliczeniowej, 1982, seria: Skrypty dla szkół wyższych. (pol.).
- ↑ PN-75/T-42110, Język programowania Algol 60, Wydawnictwa Normalizacyjne (Polski Komitet Normalizacyjny), Warszawa 1976, opracowanie Polskiej Normy: Jowita Koncewicz, Maria Łącka, Instytut Maszyn Matematycznych w Warszawie.
- ↑ Jan Małuszyński, Krzysztof Pisecki, A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, C.H.A. Koster, M. Sintzoff,.H. Lindsey, L.G.L.T. Meertens, R.G. Fisker, w tłumaczeniu Jana Małuszyńskiego i Krzysztofa Piseckiego: Algol 68. Wprowadzenie do języka Algol 68. Zmieniony raport o języku algorytmicznym Algol 68. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Informatyka. ISBN 83-204-0161-5. (pol.).
- ↑ Andrzej Jerzy Krzysztof Plewic: Język programowania APL/360. Warszawa: Wydawnictwa Naukowo-Techniczne, 1977, seria: Biblioteka informatyki. (pol.).
- ↑ Tomasz Przechlewski: Opis języka AWK. pinkaccordions.homelinux.org, 2001–2007. [dostęp 2011-08-03]. (pol.).
- ↑ B. W. Kernighan: A TUTORIAL INTRODUCTION TO THE LANGUAGE B. cm.bell-labs.com – Bell Laboratories, Murray Hill, New Jersey. [dostęp 2011-08-03]. [zarchiwizowane z tego adresu (2008-05-15)]. (ang.).
- ↑ a b c d e f Mike Ducka, tłumaczenie: Marcin Turski: Języki mikrokomputerów. Przewodnik dla początkujących. Basic, Pascal, Logo, Prolog, Comal, Forth. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988. ISBN 83-204-0966-7. (pol.).
- ↑ Zbigniew Czech, Krzysztof Nałęcki, Stanisław Wołek: Programowanie w języku BASIC. Wyd. drugie uzupełnione. Warszawa: Wydawnictwa Naukowo-Techniczne, 1985. ISBN 83-204-0776-1. (pol.).
- ↑ Wacław Iszkowski: Nauka programowania w języku BASIC dla początkujących. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Mikrokomputery. ISBN 83-204-0834-2. (pol.).
- ↑ Małgorzata Kalinowska-Iszkowska, Wacław Iszkowski: Klucze do Basicu, Amstrad – Schneider, Apple II, IBM PC, ZX Spectrum (Plus). Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Mikrokomputery. ISBN 83-204-0809-1. (pol.).
- ↑ Martin Richards: The BCPL Cintsys and Cintpos User Guide. Cambridge: Computer Laboratory University of Cambridge, January 28, 2011. [dostęp 2011-01-31]. (ang.).
- ↑ Loops. [w:] BOO – Language Guide [on-line]. boo.codehaus.org. [dostęp 2011-08-03]. (ang.).
- ↑ C Reference Card (ANSI). www.digilife.be. s. 2. [dostęp 2011-08-08]. [zarchiwizowane z tego adresu (2011-08-07)]. (ang.).
- ↑ Norman Ramsey, Simon Peyton Jones, Christian Lindig: The C-- Language Specification, Version 2.0 (CVS Revision 1.128). www.cminusminus.org, 23 lutego 2005. s. 65. [dostęp 2011-08-03]. (ang.).
- ↑ Podręcznik języka C# na Wikibooks.
- ↑ C# Language Specification ECMA-334. www.ecma-international.org – ECMA International, 4th Edition / June 2006. s. 553. [dostęp 2011-08-03]. (ang.).
- ↑ Wojciech Rogowski, Arkadiusz Serodziński: Clipper 5.0. Warszawa: Wydawnictwo PLJ, 1991. ISBN 83-85190-20-1. (pol.).
- ↑ Gary Cutler: OpenCOBOL 1.1 [06FEB2009 Version Programmer’s Guide]. /opencobol.add1tocobol.com, 2010-09-17. s. 259. [dostęp 2011-08-08]. (ang.).
- ↑ Podręcznik języka D na Wikibooks.
- ↑ Table of Contents – D Programming Language. www.digitalmars.com – DIGITAL MARS. [dostęp 2011-08-04]. (ang.).
- ↑ Statements. [w:] Language Reference – D Programming Language [on-line]. www.d-programming-language.org. [dostęp 2011-08-04]. (ang.).
- ↑ a b Tadeusz Mykowiecki: dBase, FoxBase, bazy danych. Warszawa: Wydawnictwa Naukowo-Techniczne, 1992. ISBN 83-204-1345-1. (pol.).
- ↑ Piotr J. Jasiński , Zbigniew Królikowski , Jacek Szulczyński , Mikrokomputerowe bazy danych z programowaniem w dBase IV, Warszawa, Poznań 1992 (Biblioteka Użytkownika Mikrokomputerów; tom 7), ISBN 83-85060-44-8, ISSN 0867-6011 (pol.).
- ↑ Bertrand Meyer: CEiffel*: A Language and Environment for Software Engineering. citeseerx.ist.psu.edu – Interactive Software Engineering Inc., Goleta, California. s. 48. [dostęp 2011-08-03]. (ang.).
- ↑ Loop: the only construct for iterative computation. [w:] Syntax diagrams SmartEiffel [on-line]. smarteiffel.loria.fr. [dostęp 2011-08-03]. (ang.).
- ↑ Bertrand Meyer: Eiffel: Analysis, Design and Programming Language; Standard ECMA-367. www.ecma-international.org – ECMA International, 2nd Edition / June 2006. s. 194. [dostęp 2011-08-03]. (ang.).
- ↑ FORTH Standards Team: FORTH – 79. mywebspace.wisc.edu; FORTH Interest Group, 1980. s. 50. [dostęp 2011-08-05]. [zarchiwizowane z tego adresu (2011-07-13)]. (ang.).
- ↑ 12. REQUIRED WORD SET. [w:] FORTH-83 STANDARD [on-line]. forth.sourceforge.net, 1983. [dostęp 2011-08-05]. (ang.).
- ↑ Ryszard K. Kott, Krzysztof Walczak: Programowanie w języku Fortran 77. Warszawa: Wydawnictwa Naukowo-Techniczne, 1991. ISBN 83-204-1362-1. (pol.).
- ↑ Podręcznik języka Fortran na Wikibooks.
- ↑ Michael Goerz: Fortran 90 Reference Card. michaelgoerz.net, 2008. s. 2. [dostęp 2011-08-04]. (ang.).
- ↑ WORKING DRAFT J3/97-007R2. j3-fortran.org, 21 października 1997. s. 376. [dostęp 2011-08-04]. [zarchiwizowane z tego adresu (2011-08-18)]. (ang.).
- ↑ Artur Tyloch: Kurs Java. Opis języka, składni. Polski podręcznik.. www.webdeveloper.pl. [dostęp 2011-08-04]. (pol.).
- ↑ Language Basics. [w:] The Java Tutorials [on-line]. download.oracle.com – ORACLE. [dostęp 2011-08-04]. (ang.).
- ↑ Jialong He: JAVA Quick Reference. www.digilife.be. s. 3. [dostęp 2011-08-08]. (ang.).
- ↑ Wojciech Romowicz: HTML i JavaScript. HELION, 1998. ISBN 83-7197-046-3. (pol.).
- ↑ Kurs języka JavaScript. Poradnik Webmastera. [dostęp 2011-02-09]. [zarchiwizowane z tego adresu (2011-09-27)]. (pol.).
- ↑ Martin Richards: The MCPL Programming Manual and User Guide. Cambridge: Computer Laboratory University of Cambridge, May 23, 2007. [dostęp 2011-01-31]. (ang.).
- ↑ Niklaus Wirth, Modula 2, Warszawa: Wydawnictwa Naukowo-Techniczne, 1987 (Biblioteka Inżynierii Oprogramowania), ISBN 83-204-0828-8, ISSN 0867-6011 (pol.).
- ↑ H. Mössenböck, N. Wirth: 9. Statements. [w:] The Programming Language Oberon-2 [on-line]. www-vs.informatik.uni-ulm.de:81 – Institut für Computersysteme, ETH Zürich, October 1993. [dostęp 2011-08-02]. (ang.).
- ↑ Podręcznik języka Perl na Wikibooks.
- ↑ Loop Control. [w:] Perl 5 version 14.1 documentation – Language reference [on-line]. perldoc.perl.org. [dostęp 2011-08-03]. (ang.).
- ↑ Michael Goerz: Perl Reference Card. michaelgoerz.net, 2008. s. 2. [dostęp 2011-08-04]. (ang.).
- ↑ Podręcznik języka PHP na Wikibooks.
- ↑ Podręcznik PHP. www.php.net. [dostęp 2011-08-03]. (ang.).
- ↑ Steven R. Gould: PHP 4 Reference Card. www.digilife.be. s. 2. [dostęp 2011-08-08]. (ang.).
- ↑ Jan Bielecki: PL/M język programowania mikroprocesorów. Wyd. drugie uzupełnione. Warszawa: Wydawnictwa Komunikacji i Łączności, 1987, seria: Elektronizacja. zeszyt 25. (pol.).
- ↑ Jan Bielecki: System operacyjny ISIS-II. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Mikrokomputery. ISBN 83-204-0893-8. (pol.).
- ↑ Janusz Szajna, Marian Adamski, Tomasz Kozłowski: Turbo Prolog. Programowanie w języku logiki. Warszawa: Wydawnictwa Naukowo-Techniczne, 1991, seria: Mikrokomputery. ISBN 83-204-1395-8. (pol.).
- ↑ Podręcznik języka Phyton na Wikibooks.
- ↑ Michael Goerz: Phyton 2.5 Reference Card. michaelgoerz.net, 2009. s. 2. [dostęp 2011-08-04]. (ang.).
- ↑ The Python Language Reference 2.7. docs.python.org, 4 sierpnia 2011. [dostęp 2011-08-04]. (ang.).
- ↑ Laurent Pointal: Python 2.4 Quick Reference Card. www.digilife.be. s. 18. [dostęp 2011-08-08]. (ang.).
- ↑ The REXX language. killbox.pl. [dostęp 2011-08-02]. [zarchiwizowane z tego adresu (2016-03-04)]. (ang.).
- ↑ Open Object Rexx™: Reference. www.oorexx.org. [dostęp 2011-08-02]. [zarchiwizowane z tego adresu (2015-08-29)]. (ang.).
- ↑ Podręcznik języka Ruby na Wikibooks.
- ↑ Iterators. [w:] Ruby User’s Guide [on-line]. www.rubyist.net. [dostęp 2011-08-04]. (ang.).
- ↑ Containers, Blocks, and Iterators. [w:] Programming Ruby. The Pragmatic Programmer’s Guide [on-line]. www.ruby-doc.org – Documenting the Ruby Language. [dostęp 2011-08-04]. (ang.).
- ↑ Ruby Language QuickRef. www.digilife.be. s. 2. [dostęp 2011-08-08]. (ang.).
- ↑ Hanna Oktaba, Wiesław Ratajczak: Simula 67. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0128-3. (pol.).
- ↑ Paweł Gizbert-Studnicki, Jerzy Kaczmarczuk: Snobol4. Warszawa: Wydawnictwa Naukowo-Techniczne, 1984, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0546-7. (pol.).
- ↑ Podręcznik Visual Basic na Wikibooks.
- ↑ VB.NET Quick Reference. www.digilife.be, 2006. s. 1. [dostęp 2011-08-08]. (ang.).
- ↑ John Walkenbach: Excel 2003 PL. Programowanie w VBA. HELION, 2004. ISBN 837361-504-0. (pol.).