2015-05-11 18 views
12

Il dott. James Gosling ha scritto codice per le parole chiave Java?Come vengono sviluppate le parole chiave?

Se si,

  • Come posso visualizzare Java parole chiavi codice come se visualizzare il codice sorgente?
  • C'è un modo per creare una parola chiave definita dall'utente?

Ecco cosa direi: Non esiste un codice parola chiave Java, il compilatore Java in possesso di un elenco di parole chiave, che aiuta il compilatore di capire il codice.

Questa ipotesi è corretta?

+1

C'è un articolo interessante sul controllo del flusso nel codice byte java - http://www.artima.com/underthehood/flowP.html - potrebbe essere interessante, penso. – user

+0

Il compilatore Java conosce le parole chiave java e il loro significato. Solo così può trasformare il codice sorgente java in codice Byte (che ha di nuovo * parole chiave *) – TheLostMind

+3

** Votazione per riaprire ** Non ho idea del perché questa domanda sia stata chiusa come troppo ampia.L'OP chiede in sostanza se c'è qualche implementazione del codice Java dietro le parole chiave e se è possibile implementare nuove parole chiave da soli. Ogni domanda ha una risposta chiara e il fatto che il PO abbia accettato una risposta dimostra che è stato possibile rispondere concisamente alla sua domanda. – aioobe

risposta

22

Il dott. James Gosling ha scritto codice per parole chiave Java?

Sì, quando ha scritto il primo compilatore Java probabilmente ha scritto il codice per gestire la compilazione di parole chiave.

Come visualizzare il codice di parole chiave Java come viene visualizzato il codice sorgente?

Non c'è un "metodo Java" dietro while o if ecc Queste sono le primitive di lingue gestite appositamente dal compilatore.

C'è un modo per creare una parola chiave definita dall'utente?

No, non è possibile creare parole chiave definite dall'utente. La semantica delle parole chiave è specificata nella specifica del linguaggio Java e trattata appositamente dal compilatore.

Non esiste un codice parola chiave Java. Il compilatore Java tiene un elenco di parole chiave, che aiuta il compilatore a capire il codice.

Sì. Questo è praticamente tutto.

Fonte: Sono uno sviluppatore javac

+0

"No, non è possibile creare parole chiave definite dall'utente." Mentre questa affermazione è supportata dal JLS, come ti senti su come le librerie possono esistere per __override il comportamento della compilazione javac__ in base a come l'implementazione del compilatore può essere modificata sperimentalmente (tramite la riflessione) creando un processore di annotazioni? Ad esempio: https://github.com/light/JOps – Unihedron

+0

Direi che non sembra molto portatile o stabile. Qualsiasi programmatore sano di mente probabilmente concorderebbe sul fatto che sarebbe una cattiva pratica affidarsi a tale processore di annotazione. – aioobe

3

Di solito il processo di scrittura di un software in grado di trasformare una lingua in un'altra cosa è fatto da "compilatore di compilatori" strumenti specificando una grammatica, tipicamente viene utilizzato un modulo BNF. La prima versione utilizzabile del linguaggio è in molti casi utilizzata per creare il compilatore stesso, al fine di dimostrare l'efficacia del linguaggio. Se vuoi estendere java modificando le parole chiave e aggiungendone altre, devi creare una nuova lingua, magari a partire dallo Java Grammar itself.

+3

Curiosità: javac ha un parser scritto a mano per motivi di efficienza. – aioobe