LINUX.ORG.RU

История изменений

Исправление 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 — это одна из наименьших проблем с ним.