title: HQ9++
text: # HQ9++
  
  HQ9++ è un linguaggio di programmazione esoterico, creato da David Morgan-Mar con lo scopo di creare un'estensione di HQ9+ che supportasse la programmazione ad oggetti. Il suo nome è una parodia di C++, l'estensione di C che implementa la programmazione ad oggetti.
  
  ## Istruzioni
  
  HQ9++ mantiene le quattro istruzioni dell'HQ9+, aggiungendone una quinta:
  
  * H stampa a video "Hello, World!"
  * Q stampa a video l'intero codice sorgente del programma
  * 9 stampa a video il testo di "99 bottles of beer"
  * + aumenta di 1 il valore contenuto nella variabile puntata dal puntatore alla memoria.
  * ++ aumenta di 2 il valore della variabile e crea una nuova variabile, di una generica sottoclasse della classe Object.
  
  Il funzionamento dell'operatore "++" è così definito per mantenere la retrocompatibilità con il codice HQ9+.
  
  ### Utilizzo della memoria
  
  I programmi utilizzano un puntatore ad un indirizzo di memoria. La variabile puntata viene aumentata con modulo 256 dalle istruzioni + e ++. Inoltre l'istruzione ++ crea un oggetto di una classe generica, derivata dalla classe primitiva Object. Tuttavia non si può accedere né alla variabile puntata né agli oggetti creati in alcun modo.
  
  