title: GLib
text: # GLib
  
  GLib è una libreria multipiattaforma dalle molteplici funzioni. Ha preso vita come parte del progetto GTK+, ma, prima della pubblicazione della seconda versione di GTK+, gli sviluppatori del progetto decisero di separare tutto il codice non specificatamente orientato alla creazione di interfacce grafiche dalla piattaforma GTK+, sviluppando da lì in avanti GLib come un prodotto separato. GLib viene distribuito come una libreria separata cosicché possa essere utilizzata senza l'obbligo di una dipendenza da una libreria per interfacce grafiche completa.
  
  Poiché GLib è una libreria multipiattaforma, le applicazioni che ne fanno uso per interfacciarsi col sistema operativo sono generalmente portabili verso diversi sistemi operativi senza grosse modifiche.
  
  ## Caratteristiche
  
  * tipi di base e loro limiti
  * macro predefinite
  * conversione di tipo
  * ordinamento del byte
  * allocazione di memoria
  * errori ed asserzioni
  * sistema di log
  * timer
  * funzioni per la manipolazione di stringhe
  * analizzatore lessicale
  * caricamento dinamico di moduli
  * supporto ai thread
  * un sistema di tipi, GType
  * un sistema di oggetti, GObject
  
  ### Strutture dati (e relative operazioni)
  
  * liste concatenate
  * tabelle hash
  * stringhe di dimensione dinamica
  * gruppi di stringhe
  * vettori di dimensione dinamica
  * alberi binari bilanciati
  * alberi n-ari
  * quarks (un'associazione a due vie di una stringa e un identificativo intero)
  * liste di dati con chiave (liste di elementi accessibili con una stringa o un intero)
  * relazioni e tuple (tabelle di dati indicizzati con un qualsiasi numero di campi)
  * algoritmi di caching
  