Каковы текущие открытые проблемы в теории компилятора?

13

Теория компилятора, кажется, довольно проверенная тема. Какие открытые проблемы или текущие исследования происходят в этой области?

горич
источник
2
Я в настроении для бессвязных комментариев сегодня. Вы знакомы с en.wikipedia.org/wiki/Full_employment_theorem ?
Рафаэль

Ответы:

8

По своему опыту я видел следующие новые разработки компилятора:

  • Работайте над автоматизацией параллелизма данных (или, по крайней мере, уменьшая объем явной работы, выполняемой программистом). Это обычно требует расширения языка.
  • Работайте над экстремальными стратегиями оптимизации, такими как суперкомпиляция или частичная оценка (когда программа свернута в результате оценки, пока она не будет приведена к «самой маленькой» форме, а затем скомпилирована)

Я видел множество работ над такими вещами, как проверки типов и так далее, но я предполагаю, что вы говорите больше о вещах, специфичных для компилятора.

Лиам О'Коннор
источник
7

С тех пор, как я ушел (но, вероятно, все еще актуальны):

  • Распределенная обработка:
    • Компиляция приложения для запуска на распределенном кластере процессоров.
      Это требует учета отображения памяти (распределения проблемных данных) данных на процессоры и добавления явного кода для запроса страниц памяти для чтения / записи до того, как они фактически потребуются для предотвращения зависания процессоров.
  • Параллельная обработка:
    • Компилятор генерирует многопоточный код.
      Устранение необходимости для разработчиков явно генерировать многопоточный код (потому что они обычно очень плохи в этом).
Мартин Йорк
источник