9

Zastanawiam się, czy można użyć sztucznej inteligencji, aby kompilatory były lepsze?Kompilator sztucznej inteligencji

Co mogę sobie wyobrazić, jeśli to było możliwe -

  • Bardziej szczegółowe komunikaty o błędach
  • Poprawa optymalizacje kompilatora, więc kompilator może rzeczywiście zrozumieć, co próbujesz zrobić, i robią to lepiej

Jeśli możliwe jest jest, czy są jakieś projekty badawcze na ten temat?

+4

Trudno jest użyć sztucznej inteligencji, by zrobić coś lepszego, oprócz pralek. – JnBrymn

+0

W języku C# można użyć narzędzi takich jak StyleCop i FxCop i resharper, aby pomóc w znalezieniu potencjalnych problemów. Możesz pisać reguły niestandardowe, dopóki nie zaczną tak długo pracować, że będziesz potrzebować farmy serwerów. Jaki jest twój cel? Resharper może przepisać pętle jako LINQ, a to z kolei często pomaga kompilatorowi C# emitować najszybszy możliwy kod. Jednak prędkość nie powinna być jedynym celem. –

Odpowiedz

10

Należy spojrzeć na MILEPOST GCC -

Milepost GCC to pierwszy praktyczny attept zbudować uczenia maszynowego włączona open-source produkcja self-tuning (i badań) kompilator, który można dostosować do każdej architektury stosując iteracyjny feedback- skierowany kompilacja, uczenie maszynowe i zbiorowe optimizatio

1

To rzeczywiście pole badane. Zobacz gałąź milepost dla GCC, która polega na optymalizacji pod kątem profilu i uczeniu maszynowym. Najnowsza literatura naukowa dla kompilatorów jest pełna dokumentów wykorzystujących połączenie eksploracji danych, uczenia maszynowego (poprzez algorytmy genetyczne lub sieci neuronowe) i bardziej "klasycznego" rozpoznawania wzorców określonych wzorców kodu.

4

kompilator optymalizujący jest rzeczywiście bardzo skomplikowane systemy eksperckie expert system i jest jedną z najstarszych dziedzin sztucznej inteligencji.