Можно ли добавить вывод типа в язык C ?

Допустим, мы создаем повторную реализацию C, с той лишь разницей, что что типы предполагаются. Классы и модификаторы хранилища по-прежнему должны быть задано (const, static, restrict и т. д.),и давайте ограничимся одними файл C программ на данный момент. Можно ли это сделать? Какие основные Препятствия?

Некоторые мысли о том, что может вызвать проблемы с выводом типа

  • структур с тем же именем поля, необходимо устранить вручную
  • то же самое для объединений с такими же именами полей
  • , вероятно, потребуется " из аннотации ", например,

     var i = (uint32_t -> uint64_t) * some_pointer;
     

Эти проблемы потребуют небольшой аннотации пользователя, но этого не должно быть. обременительный, есть ли какая-то убийственная проблема, которая вытесняет эту идею из воды?

Edit: Чтобы уточнить, я не говорю о добавлении дженериков или параметрического полиморфизма, просто введите вывод для существующих типов C.

Edit 2014: Любой, кто интересуется этой концепцией, может захотеть изучить Rust

14
задан Ciro Santilli 新疆改造中心法轮功六四事件 17 September 2014 в 10:21
поделиться