История изменений
Исправление quwy, (текущая версия) :
препроцессор Си => препроцессор асма => асм => линкер
Так можно сказать про любой компилятор.
Огромное количество артефактов сишки вызвано именно тем, что это просто-напросто нашлёпка над асмом, в том числе нуль-терминированные строки были родными для асма PDP
Это все не делает ЯП низкоуровневым. PDP давно стал историей, но нуль-терминированные строки до сих пор здесь, хотя ни для x86 ни для ARM они не являются чем-то родным. А сишку, тем не менее, зачем-то продолжают ставить в один ряд с асмом.
паскаль было жавой своего времени, максимально платформонезависимым ЯП с настолько безопасной памятью, насколько было приемлимо для того времени
Единственное средство защиты памяти, которое было тогда в рантайме у паскаля – контроль выхода за границы массивов. Все. Принципиально не понимаю, что помешало ввести аналогичную фичу в C, кроме нежелания уподобляться «клятому паскалю».
FPC разрешает арифметику над Pointer, которую Delphi, если я не ошибаюсь, запрешает до сих пор (разрешена только типизованная).
Арифметика указателей через кастинг к LongInt была доступна даже в TP под DOS. Начиная с Delphi 2009 она ровно на том же уровне, что и в C.
Исходная версия quwy, :
препроцессор Си => препроцессор асма => асм => линкер
Так можно сказать про любой компилятор.
Огромное количество артефактов сишки вызвано именно тем, что это просто-напросто нашлёпка над асмом, в том числе нуль-терминированные строки были родными для асма PDP
Это все не делает ЯП низкоуровневым. PDP давно стал историей, но нуль-терминированные строки до сих пор здесь, хотя ни для x86 ни для ARM они не являются чем-то родным. А сишку, тем не менее, зачем-то продолжают ставить в один ряд с асмом.
паскаль было жавой своего времени, максимально платформонезависимым ЯП с настолько безопасной памятью, насколько было приемлимо для того времени
Единственное средство защиты памяти, которое было тогда в рантайме у паскаля – контроль выхода за границы массивов. Все. Принципиально не понимаю, что помешало ввести аналогичную фичу в C, кроме нежелания уподобляться «клятому паскалю».
FPC разрешает арифметику над Pointer, которую Delphi, если я не ошибаюсь, запрешает до сих пор (разрешена только типизованная).
Арифметика указателей через кастинг к uint была доступна даже в TP под DOS. Начиная с Delphi 2009 она ровно на том же уровне, что и в C.