Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

PL/M

Z Wikipedii, wolnej encyklopedii

PL/M (akronim od ang.ProgrammingLanguage forMicroprocessors lubProgrammingLanguage forMicrocomputers) –kompilowany,strukturalnyjęzyk programowaniawysokiego poziomu stworzony przezGary'ego Kildalla w 1973 roku.[1] Jest klasyfikowany zwykle jakoasemblerowy język wysokiego poziomu ze względu na wysoki współczynnik przełożenia najęzyk asemblera.

Został stworzony jako język mający ułatwić tworzenieoprogramowania systemowego[2]. Stosowany był do tworzenia m.in.systemów operacyjnych (CP/M[1]) ikompilatorów.

Ważnąimplementacją była wersja opracowana przez firmęIntel dlaprocesorów serii8080/8085, stosowana m.in. w systemieISIS-II oraz PL/M-86 opracowana głównie dla potrzeb programowania procesów wsystemach czasu rzeczywistegoiRMX.

Składnia języka jest wzorowana na językuPL/I.

Historia

[edytuj |edytuj kod]

Pierwsza wersja języka powstała mikroprocesoraIntel 8008 w 1973 roku. Jej autorem byłGary Kildall, który pracował wówczas (dodatkowo) dlaIntela jako konsultant.Kompilator PL/M został zaimplementowany w językuFORTRAN IV na komputerzePDP-10.[1][2]

W kolejnych latach powstały wersje kompilatorów języka dla innych procesorów (w szczególności dlaIntel 8080), które wykorzystywane były w implementacjisystemowych programów narzędziowych, kompilatorów oraz systemów operacyjnych.

Najbardziej znanym systemem, który powstał w PL/M, był CP/M[a], pierwszy szeroko wykorzystywany system operacyjny dlamikrokomputerów, którego pierwsza wersja powstała w 1974 roku.[1]

Przykład

[edytuj |edytuj kod]
 Zobacz też:Hello world.
/* HELLO WORLD dla systemów operacyjnych ISIS-II i CP/M */HELLO: DO;  DECLARE REP ADDRESS;  WRITE: PROCEDURE (A,B,C,D) EXTERNAL;    DECLARE (A,B,C,D) ADDRESS; END;  CALL WRITE(0,.('Hello, world!'),13,.REP);END HELLO;

Cechy

[edytuj |edytuj kod]

Język PL/M jest językiem umożliwiającym programowaniemodularne, przy czym ważną cechą była możliwość tworzenia przemieszczalnych modułów i możliwośćprogramowania hybrydowego (PL/M +asembler).

Język PL/M (jego implementacja PL/M-80) jest tak zaprojektowany, że istnieje bezpośrednie odwzorowanie konstrukcji tegojęzyka najęzyk maszynowyprocesora Intel 8080/8085.Kompilator ten posiada opcję umożliwiającą translacjęprogramu źródłowego w PL/M na program w asemblerze.

Program w języku PL/M składa się z niezależniekompilowanych modułów. Moduł źródłowy (najmniejsza kompilowalna jednostka) jestinstrukcją strukturalną o postaci:

nazwa: DO;deklaracje i definicje     [instrukcje]  ENDnazwa;

Jeżeli moduł zawiera co najmniej jednąinstrukcję, to stanowi moduł główny i od niego rozpoczyna się wykonywanie programu; przy kilku takich modułach wyróżnienie modułu głównego następuje na etapie konsolidacji. Pozostałe moduły mogą zawierać jedyniedeklaracje i definicje.

W języku PL/Mzmienne posiadają określane w deklaracjachatrybuty:

  • zmienne proste:
    • BYTE –bajtowe,
    • ADDRESS – dwubajtowe, zmienne te mogą oprócz liczb całkowitych przechowywać dane wskaźnikowe (należy raczej powiedzieć, że dane całkowite przechowywane w tych zmiennych mogą być traktowane jako wskaźniki),
    • BASE – bazowe;
  • tablicowe –tablice mogą być w PL/M jednowymiarowe o ustalonym wymiarzeindeksowaneod zera,
  • strukturowe,
  • literały – LITERALLY 'tekst'.

Późniejszewersje języka, jak PL/M 386 dla systemuiRMX, wprowadziły nowetypy, znane z innych języków programowania, takie jakcałkowity,rzeczywisty,znakowy, umożliwiające programowanie na wyższym poziomie abstrakcji, choć oczywiście nadal jest możliwe programowanie bliskie sprzętowi, w tym korzystanie z ww. danych bajtowych i słowowych.

Pozostałeatrybuty określają inne cechy zmiennych:

  • AT(adres) – określa położenie zmiennej w pamięci,
  • INITIAL(wartość) – nadanie początkowej wartości zmiennej,
  • PUBLIC – udostępnienie zmiennej dla innych modułów,
  • EXTERNAL – zmienna z innego modułu.

W deklaracjach (podobnie jak w PL/I) można grupować identyfikatory:

DECLARE (A,B) (3) ADDRESS;

Deklaracja i definicjaprocedury ma postać:

nazwa: PROCEDURE(parametry) [typ_wartości] [atrybuty];              DECLAREdeklaracje parametrów,deklaracje zmiennych;instrukcje        ENDnazwa;

W przypadku procedur zewnętrznych stosować należy deklarację o postaci jak wyżej z pominięciemdeklaracji zmiennych iinstrukcji, ale z dodatkowym atrybutem EXTERNAL. Inne atrybuty to PUBLIC dlaprocedur udostępnianych dla innychmodułów i REENTRANT dlaprocedurrekurencyjnych.

Główneinstrukcje języka PL/M:

Język posiada takżewbudowane procedury ipredefiniowane zmienne.

Przykład:

PR1: DO;  DECLARE LICZ BYTE,          TAB(5) BYTE,          SUM ADRESS INITAL(0);  READTAB: PROCEDURE;    DECLARE I BYTE;    DO I=1 TO 5 BY 1;      TAB(I)=INPUT(1);    END;  END READTAB;  CALL READTAB;  LICZ=1;  DO WHILE LICZ<6;    SUM=SUM+TAB(LICZ);    LICZ=LICZ+1;  END;  OUTPUT(1)=SUM;END PR1;

Uwagi

[edytuj |edytuj kod]
  1. którego autorem był również Gary Kildall

Przypisy

[edytuj |edytuj kod]
  1. abcdLiam Proven: 50 years ago, CP/M started the microcomputer revolution. The Register, 2024-09-02. [dostęp 2026-01-11]. (ang.).
  2. abMCS-8 Micropcomputer Set - 8008 8-bit parallel Central Processor Unit - User's Manual. Intel, 1973, s. okładka 2. [dostęp 2026-01-11]. (ang.).

Bibliografia

[edytuj |edytuj kod]

Zobacz też

[edytuj |edytuj kod]
Języki programowania
1GL
2GL/
Język drugiej generacji/
Asembler
3GL /
Język trzeciej generacji
wieloparadygmatowe
proceduralne
istrukturalne
historyczne
inne
obiektowe
funkcyjne
edukacyjne
4GL/
Język czwartej generacji/
Język dziedzinowy
Języki zapytań do baz danych
Generatory raportów / stron
Przetwarzanie danych, analiza i raportowanie
5GL/Logiczne
Ezoteryczne
Inne
Źródło: „https://pl.wikipedia.org/w/index.php?title=PL/M&oldid=78766586
Kategoria:

[8]ページ先頭

©2009-2026 Movatter.jp