PL/M

PL/M
Deweloper Gary Kildall z firmy Microcomputer Applications Associates
Po raz pierwszy pojawiły się 1973 ( 1973 )
Pod wpływem
ALGOL , PL/I , XPL

Język programowania PL/M (skrót od firmy języka programowania dla mikrokomputerów ) to wymyślony język wysokiego poziomu i opracowany przez Gary'ego Kildalla w 1973 roku dla Hanka Smitha z Intel dla jego mikroprocesorów .

Przegląd

Język zawierał idee z PL/I , ALGOL [ potrzebne źródło ] i XPL oraz miał zintegrowany makroprocesor . Jako absolwent University of Washington Kildall używał swojego komputera Burroughs B5500 i jako taki był świadomy potencjału języków wysokiego poziomu, takich jak ESPOL , w programowaniu systemów.

W przeciwieństwie do innych współczesnych języków, takich jak Pascal , C czy BASIC , PL/M nie miał standardowych procedur wejścia ani wyjścia. Zawierał funkcje przeznaczone dla niskopoziomowego sprzętu specyficznego dla docelowych mikroprocesorów i jako taki mógł obsługiwać bezpośredni dostęp do dowolnego miejsca w pamięci, portów I/O i flag przerwań procesora w bardzo wydajny sposób. PL/M był pierwszym językiem programowania wyższego poziomu dla komputerów opartych na mikroprocesorach i był oryginalnym językiem implementacji tych części systemu CP/M , które nie zostały napisane w asemblerze. Wiele Intel i Systemy wbudowane oparte na Zilog Z80 były programowane w PL / M w latach 70. i 80. XX wieku. Na przykład oprogramowanie układowe komponentu Service Processor CISC IBM AS/400 zostało napisane w języku PL/M.

Oryginalny kompilator PL/M był ukierunkowany na Intel 8008 . Zaktualizowana wersja (PL / M-80) wygenerowała kod dla 8080 , który działałby również na nowszych Intel 8085 , a także na rodzinie Zilog Z80 (ponieważ jest wstecznie kompatybilny z 8080). Później pojawiły się kompilatory dla Intel 8048 i Intel 8051 (PL/M-51), a także dla procesorów 8086 (8088) (PL/M-86), 80186 (80188) i kolejnych opartych na 8086, w tym zaawansowany 80286 i 32-bitowy 80386 . Były też kompilatory PL/M opracowane dla późniejszych mikrokontrolerów, takich jak Intel 8061 i 8096 / MCS-96 (PL/M-96).

Podczas gdy niektóre kompilatory PL/M były „natywne”, co oznacza, że ​​działały w systemach wykorzystujących ten sam mikroprocesor, np. dla systemu operacyjnego Intel ISIS , istniały również kompilatory krzyżowe , na przykład PLMX, które działały w innych środowiskach operacyjnych, takich jak Digital Research CP/M, Microsoft DOS i VAX / VMS Digital Equipment Corporation .

PL/M nie jest już obsługiwany przez firmę Intel, ale istnieją narzędzia rynku wtórnego, takie jak translatory kodu źródłowego PL/M-to-C.

Przykładowy kod PL/M

  
      
    
      
          
       
      
            ZNAJDŹ  :  PROCEDURA  (  PA  ,  PB  )  BYTE  ;  DECLARE  (  PA  ,  PB  )  BAJT  ;  /* ZNAJDŹ ŁAŃCUCH W SCRATCH ZACZYNAJĄCYM W PA I KOŃCZĄCYM W PB */  DEKLARUJ  ADRES  J  ,  (  K  ,  DOPASUJ  )  BYTE  ;  J  =  WSTECZ  ;  DOPASOWANIE  =  FAŁSZ  ;  ZRÓB,  GDY  NIE  DOPASUJ  I     
             
            
                 
                     
            
              (  MAKS  >  J  )  ;  OSTATNI  ,  J  =  J  +  1  ;  /* ROZPOCZNIJ SKANOWANIE W J */  K  =  PA  ;  /* PRÓBA DOPASOWANIA ŁAŃCUCHA W K */  DO  GDY  SCRATCH  (  K  )  =  PAMIĘĆ  (  OSTATNIA  )  AND  NOT  (  MATCH  :=  K  =  PB  )  ;  /* DOPASOWANY WIĘCEJ ZNAK */  K  =         
            
        
       
               
        
     
      K  +  1  ;  OSTATNI  =  OSTATNI  +  1  ;  KONIEC  ;  KONIEC  ;  JEŚLI  DOPASUJ  TO  /* PRZENIEŚ PAMIĘĆ */  DO  ;  OSTATNI  =  OSTATNI  -  1  ;  PRZENOSZENIE  POŁĄCZEŃ  ;  KONIEC  ;  MECZ  POWRÓT  ;  ZNAJDŹ  KONIEC  ; 

Dalsza lektura