История изменений
Исправление unC0Rr, (текущая версия) :
А в LLVM нет алиасинга
Не уверен, что есть как концепция, я в этот язык особо не вникал. Суть в том, что проблема есть в цпп, и его компилятор вынужден учитывать её, даже если твой исходный язык от алиасинга избавлен.
есть нормальные movable типы
Опять же, movable тип - ему можно в любой момент сделать memmove и забыть. В цпп таких типов нет (кроме совсем базовых типа инта или флоата), они невыразимы в цпп. А следовательно будут невыразимы в твоём гипотетическом языке.
Нужны достаточные для семантики реализуемого языка.
А ещё нужны необходимые для семантики реализуемого языка. А их может и не быть.
у C/C++ есть объективное преимущество: использование библиотек
Линковаться к сишным библиотекам можно из любого языка. Проблема как всегда в отличающейся семантике выдуманного языка и си, нужен как минимум какой-то клей, приводящий твой язык и внешнюю библиотеку к общему знаменателю.
Исходная версия unC0Rr, :
А в LLVM нет алиасинга
Не уверен, что есть как концепция, я в этот язык особо не вникал. Суть в том, что проблема есть в цпп, и его компилятор вынужден учитывать её, даже если твой исходный язык от алиасинга избавлен.
есть нормальные movable типы
Опять же, movable тип - ему можно в любой момент сделать memmove и забыть. В цпп таких типов нет, они невыразимы в цпп. А следовательно будут невыразимы в твоём гипотетическом языке.
Нужны достаточные для семантики реализуемого языка.
А ещё нужны необходимые для семантики реализуемого языка. А их может и не быть.
у C/C++ есть объективное преимущество: использование библиотек
Линковаться к сишным библиотекам можно из любого языка. Проблема как всегда в отличающейся семантике выдуманного языка и си, нужен как минимум какой-то клей, приводящий твой язык и внешнюю библиотеку к общему знаменателю.