История изменений
Исправление hateyoufeel, (текущая версия) :
С высоты «птичьего полёта» там мелкие отличия.
Я не знаю, какой у тебя там птичий полёт, но различия весьма существенные. Для начала, в Фортране работа с массивами и строками не основана на жонглировании указателями, из-за чего её гораздо проще оптимизировать. Именно поэтому в Фортране поддержка SIMD появилась гораздо быстрее и работает предсказуемее (ссылок не будет). В C же чтобы использовать SIMD для работы с массивом, компилятор должен понять, что вот этот вот цикл for(...) — это именно работа с массивом, а не просто увеличение счётчика. С идиомами типа while(*p++) {...} аналогично.
в Паскале (в совремённом)
Современный Паскаль — это оксюморон, нет?
В Си тоже стоило бы не одной звездочкой * обходиться, а придумать разные символы для определения указателя и для получения значения в памяти, на которое указывает указатель. В том числе в случаях LValue.
Синтаксис C — это одна из наименьших проблем с ним. Я тут ещё раз повторю про плоскую модель памяти. В современных системах память даже близко не плоская, но ради C это приходится эмулировать в железе.
Исправление hateyoufeel, :
С высоты «птичьего полёта» там мелкие отличия.
Я не знаю, какой у тебя там птичий полёт, но различия весьма существенные. Для начала, в Фортране работа с массивами и строками не основана на жонглировании указателями, из-за чего её гораздо проще оптимизировать. Именно поэтому в Фортране поддержка SIMD появилась гораздо быстрее и работает предсказуемее (ссылок не будет). В C же чтобы использовать SIMD для работы с массивом, компилятор должен понять, что вот этот вот цикл for(...) — это именно работа с массивом, а не просто увеличение счётчика. С идиомами типа while(*p++) {...} аналогично.
в Паскале (в совремённом)
Современный Паскаль — это оксюморон, нет?
В Си тоже стоило бы не одной звездочкой * обходиться, а придумать разные символы для определения указателя и для получения значения в памяти, на которое указывает указатель. В том числе в случаях LValue.
Синтаксис C — это одна из наименьших проблем с ним. Я тут ещё раз повторю про плоскую модель памяти. В современных системах память даже близко не плоская.
Исходная версия hateyoufeel, :
С высоты «птичьего полёта» там мелкие отличия.
Я не знаю, какой у тебя там птичий полёт, но различия весьма существенные. Для начала, в Фортране работа с массивами и строками не основана на жонглировании указателями, из-за чего её гораздо проще оптимизировать. Именно поэтому в Фортране поддержка SIMD появилась гораздо быстрее и работает предсказуемее (ссылок не будет). В C же чтобы использовать SIMD для работы с массивом, компилятор должен понять, что вот этот вот цикл for(...) — это именно работа с массивом, а не просто увеличение счётчика. С идиомами типа while(*p++) {...} аналогично.
в Паскале (в совремённом)
Современный Паскаль — это оксюморон, нет?
В Си тоже стоило бы не одной звездочкой * обходиться, а придумать разные символы для определения указателя и для получения значения в памяти, на которое указывает указатель. В том числе в случаях LValue.
Синтаксис C — это одна из наименьших проблем с ним.