Jakie są obecnie otwarte problemy w teorii kompilatora?

Odpowiedzi:

8

Z mojego doświadczenia widziałem następujące nowe osiągnięcia kompilatora:

  • Pracuj nad automatyzacją równoległości danych (lub przynajmniej zmniejszeniem ilości jawnej pracy wykonanej przez programistę). Zwykle wymaga to również rozszerzenia języka.
  • Pracuj nad ekstremalnymi strategiami optymalizacji, takimi jak superkompilacja lub częściowa ocena (gdy program jest zwinięty przez ocenę, dopóki nie zostanie zredukowany do swojej „najmniejszej” postaci, a następnie skompilowany)

Widziałem wiele prac nad takimi rzeczami, jak sprawdzanie typów i tak dalej, ale zakładam, że mówisz więcej o rzeczach specyficznych dla kompilatora.

Liam O'Connor
źródło
7

Od kiedy opuściłem (ale prawdopodobnie nadal są aktualne):

  • Przetwarzanie rozproszone:
    • Kompilowanie aplikacji do działania na rozproszonym klastrze procesorów.
      Wymaga to wzięcia pod uwagę mapowania pamięci (dystrybucji danych problemowych) danych do procesorów i dodania jawnego kodu w celu żądania stron pamięci do odczytu / zapisu, zanim będą one faktycznie potrzebne, aby zapobiec zablokowaniu procesorów.
  • Przetwarzanie równoległe:
    • Wygenerowany przez kompilator kod wątkowy.
      Eliminuje potrzebę jawnego generowania kodu wątkowego przez programistów (ponieważ są na ogół bardzo źli).
Martin York
źródło