Czy ktoś może wyjaśnić działanie kompilatora Groovy? Czy to skompilować:Jak działa kompilator Groovy?
kod Groovy -> kod Java -> Bytecode
Groovy kod -> Bytecode
innej metody
Czy ktoś może wyjaśnić działanie kompilatora Groovy? Czy to skompilować:Jak działa kompilator Groovy?
kod Groovy -> kod Java -> Bytecode
Groovy kod -> Bytecode
innej metody
Groovy analizuje kod źródłowy z antlr poprzez groovy grammar description, a następnie generuje kodu bajtowego korzystając asm
Nie wymaga javac
Groovy kompilator wydaje kompilacja bezpośrednio ze źródła do kodu bajtowego:
groovyc
to narzędzie wiersza poleceń kompilatora Groovy. To pozwala na kompilować Groovy źródeł w bajtode. Pełni tę samą rolę, cojavac
w świecie Java.
Dzięki za odpowiedź. Rozumiem to i użyłem wcześniej groovyc. Ale ta dokumentacja nie mówi, co robi kompilator Groovy. Czy może używać javac pod osłonami? – bholl
@bholl Chociaż nie mogę znaleźć informacji, aby to potwierdzić, wątpię, że tak. O wiele łatwiej byłoby generować surowy bajtek, niż generować źródło Java, które kompiluje do żądanego kodu bajtowego. – jamestn529
Wyobraź sobie sytuację, w której utworzysz plik .groovy zawierający standardowy kod Java. To nie jest idealna sytuacja, ale możesz to zrobić. Jeśli groovyc nie wykorzystał javac w jakiś sposób w normalnych warunkach kodu java, wydaje się, że jest to dużo duplikatów dla facetów kompilatora groovyc. – bholl
Niesamowite dzięki! Widzę, że teraz mam lekki odczyt na weekend. :) – bholl
wystarczy, aby ukończyć, co powiedział tim ... podczas kompilowania groovy pliku (lub pęczek z nich) odpowiedź jest właściwa. Jeśli kompilator Groovy ma również skompilować kod java, to obecnie ma on następującą postać: 1. Kod Groovy -> .java stubs. 2. javac kompiluje wszystkie pliki java. 3. Kod Groovy -> pliki klas jak wyżej, używając również klas utworzonych przez javac. Umożliwia to tworzenie zajęć w Groovy, które używają klas w Javie, które używają klas w Groovy (i tak dalej). Do poziomu, w którym zwykłe oddzielenie plików w różnych etapach kompilacji nie będzie już działać. – blackdrag