Quais são os problemas abertos atuais na teoria dos compiladores?

Respostas:

8

Na minha experiência, vi os seguintes desenvolvimentos de novos compiladores:

  • Trabalhe na automação do paralelismo de dados (ou, pelo menos, na redução da quantidade de trabalho explícito realizado pelo programador). Isso normalmente requer extensões para o idioma também.
  • Trabalhe em estratégias de otimização extrema, como supercompilação ou avaliação parcial (em que um programa é recolhido por meio de avaliação até ser reduzido à sua forma "menor" e compilado)

Eu já vi vários trabalhos em coisas como verificadores de tipo e assim por diante, mas presumo que você esteja falando mais sobre coisas específicas do compilador.

Liam O'Connor
fonte
7

Desde quando saí (mas provavelmente ainda são relevantes):

  • Processo de distribuição:
    • Compilando o aplicativo para executar em um cluster distribuído de processadores.
      Isso requer levar em consideração o mapeamento da memória (distribuição de dados do problema) dos dados para os processadores e adicionar código explícito para solicitar páginas de memória para leitura / gravação antes que elas sejam realmente necessárias para impedir a paralisação dos processadores.
  • Processamento paralelo:
    • Código encadeado gerado pelo compilador.
      Removendo a necessidade de desenvolvedores gerarem explicitamente código encadeado (porque geralmente são muito ruins nisso).
Martin York
fonte