b"\n_START_ARTICLE_\nJ\xc4\x99zyk wysokiego poziomu\n_START_SECTION_\nCechy\n_START_PARAGRAPH_\nPoj\xc4\x99cie \xe2\x80\x9ej\xc4\x99zyk wysokiego poziomu\xe2\x80\x9d oznacza odwo\xc5\x82ywanie si\xc4\x99 do wy\xc5\xbcszego poziomu abstrakcji ni\xc5\xbc poziom kodu maszynowego, a nawet poziom j\xc4\x99zyk\xc3\xb3w niskopoziomowych. Zamiast zajmowa\xc4\x87 si\xc4\x99 rejestrami, adresami pami\xc4\x99ci oraz stosami, j\xc4\x99zyki wysokiego poziomu dotycz\xc4\x85 zmiennych, tablic, obiekt\xc3\xb3w, zaawansowanych arytmetycznych oraz logicznych wyra\xc5\xbce\xc5\x84, podprogram\xc3\xb3w i funkcji, p\xc4\x99tli, krok\xc3\xb3w oraz innych abstrakcyjnych koncept\xc3\xb3w komputerowych, z naciskiem na u\xc5\xbcyteczno\xc5\x9b\xc4\x87 ponad optymaln\xc4\x85 wydajno\xc5\x9b\xc4\x87 programu. Inne ich cechy to procedury do obs\xc5\x82ugi ci\xc4\x85g\xc3\xb3w znak\xc3\xb3w, obiektowe cechy programowania, obecne mog\xc4\x85 by\xc4\x87 r\xc3\xb3wnie\xc5\xbc procesy wej\xc5\x9bcia/wyj\xc5\x9bcia. W przeciwie\xc5\x84stwie do j\xc4\x99zyk\xc3\xb3w niskiego poziomu, j\xc4\x99zyki wysokiego poziomu maj\xc4\x85 co najwy\xc5\xbcej kilka element\xc3\xb3w, kt\xc3\xb3re bezpo\xc5\x9brednio t\xc5\x82umaczy si\xc4\x99 na kod j\xc4\x99zyka maszynowego. Wa\xc5\xbcnym faktem jest r\xc3\xb3wnie\xc5\xbc, \xc5\xbce pozwalaj\xc4\x85 one na odseparowanie kodu \xc5\xbar\xc3\xb3d\xc5\x82owego program\xc3\xb3w od architektury konkretnej maszyny. W przeciwie\xc5\x84stwie do j\xc4\x99zyk\xc3\xb3w niskiego poziomu, takich jak asembler lub j\xc4\x99zyk maszynowy, j\xc4\x99zyki wysokiego poziomu mog\xc4\x85 \xe2\x80\x9ewzmacnia\xc4\x87 \xe2\x80\x9dinstrukcje programist\xc3\xb3w i wywo\xc5\x82ywa\xc4\x87 wiele zmian w danych (realizowanych w tle) bez ich wiedzy. Odpowiedzialno\xc5\x9b\xc4\x87 i moc wykonywania instrukcji zosta\xc5\x82y zdj\xc4\x99te z bark\xc3\xb3w programisty i z\xc5\x82o\xc5\xbcone na karb maszyny.\n_START_SECTION_\nEwolucja\n_START_PARAGRAPH_\nJ\xc4\x99zyki wysokiego poziomu mog\xc4\x85 by\xc4\x87 rozwijane w wyniku wprowadzania przez ich tw\xc3\xb3rc\xc3\xb3w coraz to nowszych ulepsze\xc5\x84 do ich specyfikacji. W innych warunkach wysokopoziomowe j\xc4\x99zyki ewoluuj\xc4\x85, z jednego lub kilku, w celu \xc5\x82\xc4\x85czenia najbardziej przydatnych konstrukcji z nowymi lub ulepszonymi cechami. Przyk\xc5\x82adem takiego j\xc4\x99zyka jest Scala, kt\xc3\xb3ry utrzymuje kompatybilno\xc5\x9b\xc4\x87 wsteczn\xc4\x85 z Jav\xc4\x85, co oznacza, \xc5\xbce programy lub biblioteki napisane w Javie mog\xc4\x85 by\xc4\x87 u\xc5\xbcyte r\xc3\xb3wnie\xc5\xbc, gdy programi\xc5\x9bci przejd\xc4\x85 na Scal\xc4\x99. Znacznie u\xc5\x82atwia to przenoszenie oprogramowania, a \xc5\xbcycie takiego wysokopoziomowego kodu jest teoretycznie niesko\xc5\x84czone. Dla kontrastu, niskopoziomowe programy rzadko s\xc4\x85 w stanie przetrwa\xc4\x87 poza konkretn\xc4\x85 architektur\xc4\x85, dla kt\xc3\xb3rej zosta\xc5\x82y napisane, bez wi\xc4\x99kszych zmian.\n_START_SECTION_\nPrzyk\xc5\x82ad\n_START_PARAGRAPH_\nPrzyk\xc5\x82adowy program w j\xc4\x99zyku niskopoziomowym \xe2\x80\x93 asemblerze:_NEWLINE_    .START STST: MOV R1,#2_NEWLINE_    MOV R2,#1M1: CMP R2,#20_NEWLINE_    BGT M2_NEWLINE_    MUL R1,R2_NEWLINE_    INI R2_NEWLINE_    JMP M1M2: JSR PRINT_NEWLINE_    .END_NEWLINE_i ten sam program w j\xc4\x99zyku wysokopoziomowym \xe2\x80\x93 BASIC'u:_NEWLINE_A:=2;FOR I:=1 TO 20 LOOP    A:=A*I;END LOOP;PRINT(A);"