Wiele podręczników na temat języka programowania C mówi, że C jest językiem programowania wysokiego poziomu, ale wielu internetowych instruktorów twierdzi, że C jest również językiem programowania średniego poziomu. Dlaczego tak jest?
Wiele podręczników na temat języka programowania C mówi, że C jest językiem programowania wysokiego poziomu, ale wielu internetowych instruktorów twierdzi, że C jest również językiem programowania średniego poziomu. Dlaczego tak jest?
Odpowiedzi:
Historycznie wszystko, co streszcza kod asemblera, nazywało się wysokim poziomem. C na pewno to robi. Ta definicja jest również stosunkowo jednoznaczna, w przeciwieństwie do tego, co następuje.
Z biegiem czasu tworzyliśmy coraz więcej języków programowania i wymyślaliśmy coraz więcej abstrakcji i narzędzi. W porównaniu do, powiedzmy, Python, język C jest pozytywnie prymitywny pod względem bogactwa semantycznego i poziomu abstrakcji nad sprzętem. Mając to na uwadze, wiele osób uważa, że mylące jest nazywanie języka C na wysokim poziomie, gdy istnieje bogactwo języków, które są znacznie wyżej niż sprzęt.
Zatem teraz „wysoki poziom” zwykle oznacza „dużo streszczeń w stosunku do sprzętu”, a „niski poziom” oznacza „niewiele streszczeń”. Jest to definicja, której używają Twoi nauczyciele. Nie wszyscy się jednak z tym zgadzają, a stare teksty nie przyjmują w magiczny sposób nowej terminologii, więc wciąż można zaobserwować, że stare użycie „wysokiego poziomu” (pod którym C jest wysokim poziomem) unosi się wokół. Pamiętaj, że wiele dobrych książek C to w zasadzie nowsze wydania książek wydanych dwadzieścia lat temu.
Jest to język wyższego poziomu niż kod maszynowy (asembler), z którego pochodzą książki i samouczki programowania C.
Pod tym względem jest to język programowania wysokiego poziomu.
Jednak wciąż jest bardzo blisko sprzętu - o wiele bardziej niż inne, bardziej nowoczesne języki (Java, C # i inne) - patrząc z tego punktu widzenia, jest to język programowania średniego poziomu.