LINUX.ORG.RU

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

Исправление unC0Rr, (текущая версия) :

А в LLVM нет алиасинга

Не уверен, что есть как концепция, я в этот язык особо не вникал. Суть в том, что проблема есть в цпп, и его компилятор вынужден учитывать её, даже если твой исходный язык от алиасинга избавлен.

есть нормальные movable типы

Опять же, movable тип - ему можно в любой момент сделать memmove и забыть. В цпп таких типов нет (кроме совсем базовых типа инта или флоата), они невыразимы в цпп. А следовательно будут невыразимы в твоём гипотетическом языке.

Нужны достаточные для семантики реализуемого языка.

А ещё нужны необходимые для семантики реализуемого языка. А их может и не быть.

у C/C++ есть объективное преимущество: использование библиотек

Линковаться к сишным библиотекам можно из любого языка. Проблема как всегда в отличающейся семантике выдуманного языка и си, нужен как минимум какой-то клей, приводящий твой язык и внешнюю библиотеку к общему знаменателю.

Исходная версия unC0Rr, :

А в LLVM нет алиасинга

Не уверен, что есть как концепция, я в этот язык особо не вникал. Суть в том, что проблема есть в цпп, и его компилятор вынужден учитывать её, даже если твой исходный язык от алиасинга избавлен.

есть нормальные movable типы

Опять же, movable тип - ему можно в любой момент сделать memmove и забыть. В цпп таких типов нет, они невыразимы в цпп. А следовательно будут невыразимы в твоём гипотетическом языке.

Нужны достаточные для семантики реализуемого языка.

А ещё нужны необходимые для семантики реализуемого языка. А их может и не быть.

у C/C++ есть объективное преимущество: использование библиотек

Линковаться к сишным библиотекам можно из любого языка. Проблема как всегда в отличающейся семантике выдуманного языка и си, нужен как минимум какой-то клей, приводящий твой язык и внешнюю библиотеку к общему знаменателю.