For faster navigation, this Iframe is preloading the Wikiwand page for Język niskiego poziomu.

Język niskiego poziomu

Język niskiego poziomujęzyk programowania, w którym jednej operacji elementarnej odpowiada najczęściej jedna operacja elementarna rzeczywistego procesora[1]. W języku niskiego poziomu używa się stosunkowo prostych wyrażeń symbolicznych, które odpowiadają zestawowi rozkazów maszynowych.

Miernikiem „poziomu” danego języka programowania jest jego powiązanie ze sprzętem komputerowym (ang. hardware). Przykładowo, w językach asemblerowych (które są językami niskiego poziomu) operuje się bezpośrednio na rejestrach procesora i pośrednio także na komórkach pamięci, brak w nich natomiast abstrakcji programistycznych takich jak pętle czy złożone struktury danych. Istnieje szereg języków, które, mimo że należą do klasy języków wysokopoziomych, posiadają taką budowę i składnię często pozwalającą przewidzieć, jaki będzie odpowiednik programu w asemblerze, a tym samym generować z nich efektywny kod maszynowy. Do takich języków należy m.in. język C. Inne języki wysokopoziomowe, takie jak np. Java wraz z innymi językami obiektowymi, wprowadzają szereg abstrakcji programistycznych często tak oddalonych od sprzętu komputerowego (reprezentowanego przez instrukcje procesora, rejestry, adresy), że ten staje się dla programisty niewidoczny.

Określenie „język niskiego poziomu” może być rozumiane również jako skala oceny subiektywnej danego języka programowania względem innego, np. C może być oceniany jako język niskiego poziomu przez osoby programujące w języku Java.

Kod maszynowy

[edytuj | edytuj kod]
Przedni panel minikomputera PDP-8/E. Rząd przełączników (u dołu) wykorzystywany jest do przełączania w języku maszynowym programu

Kod maszynowy jest jedynym językiem, który komputer może przetwarzać i wykonywać bezpośrednio, bez konieczności wcześniejszej transformacji kodu. Obecnie programiści praktycznie w ogóle nie piszą programów w kodzie maszynowym, gdyż wymaga on zwracania uwagi na liczne szczegóły, które w językach wysokopoziomowych są obsługiwane automatycznie. Ponadto wymagane jest zapamiętywanie bądź wyszukiwanie kodów liczbowych dla każdej instrukcji, a modyfikacja kodu jest bardzo trudna.

Rzeczywisty kod maszynowy jest strumieniem surowych, zwykle binarnych danych. Programista, piszący w „kodzie maszynowym” zazwyczaj dokonuje kodowania danych oraz instrukcji w nieco bardziej czytelnej formie, np. w systemie dziesiętnym, ósemkowym, lub heksadecymalnym, który jest tłumaczony na wewnętrzny format przez stosowny program (ang. loader) lub też wprowadzany do pamięci komputera za pomocą panelu przedniego.

Pomimo iż niewiele programów napisanych jest w języku maszynowym, programiści często opanowują jego czytanie poprzez pracę ze zrzutami pamięci lub poprzez debuggowanie za pomocą przedniego panelu[2].

Przykład: funkcja zaprezentowana w heksadecymalnej postaci 32-bitowego x86 kodu maszynowego, obliczająca n-ty wyraz ciągu Fibonacciego:

8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
C9010000 008D0419 83FA0376 078BD98B
B84AEBF1 5BC3

Zobacz też

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  1. Kott, Ryszard K., i Krzysztof Walczak. Programowanie w języku Fortran 77. Wydawnictwa Naukowo-Techniczne, 1991, str. 14
  2. What is machine code (machine language)? - Definition from WhatIs.com [online], whatis.techtarget.com [dostęp 2017-11-24] (ang.).
{{bottomLinkPreText}} {{bottomLinkText}}
Język niskiego poziomu
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?