2015-06-19 13 views

Odpowiedz

9

Groovy analizuje kod źródłowy z antlr poprzez groovy grammar description, a następnie generuje kodu bajtowego korzystając asm

Nie wymaga javac

+1

Niesamowite dzięki! Widzę, że teraz mam lekki odczyt na weekend. :) – bholl

+3

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

2

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ę, co javac w świecie Java.

Źródło: http://www.groovy-lang.org/groovyc.html

+0

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

+0

@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

+0

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