Slajd identyfikuje bariery programowania w asemblerze, które wymusiły stworzenie uniwersalnych języków wysokiego poziomu.
Brak Przenośności i Wysoka Złożoność
- Brak przenośności: ścisłe powiązanie kodu ze zbiorem instrukcji danego procesora wyklucza uruchomienie na innej platformie.
- Złożoność utrzymania: ręczne kodowanie elementarnych operacji prowadzi do powstawania tysięcy trudnych w analizie wierszy.
- Brak abstrakcji danych: brak wbudowanych typów złożonych, struktur obiektowych oraz dynamicznego zarządzania pamięcią.
- Kryzys oprogramowania: rosnące koszty pracy programistów wymusiły automatyzację generowania rozkazów maszynowych.
Przenośność oprogramowania: cecha kodu źródłowego umożliwiająca jego skompilowanie i uruchomienie na różnych platformach sprzętowych i systemowych przy minimalnych modyfikacjach. Języki niskiego poziomu są z definicji nieprzenośne, ponieważ bazują na unikalnych rejestrach i architekturze danego procesora. Wymóg przenośności był głównym motorem napędowym rozwoju języków wysokiego poziomu, takich jak Fortran, COBOL czy C.