Ho il compito di scrivere un assemblatore in C, che si presta abbastanza bene in alcuni scenari di progettazione, e in una fase di analisi, dopo la tokenizzazione, ho bisogno di "compilare" alcune informazioni che prima erano state ignorate dalla tokenizzazione .
Salterò i dettagli, ma il modo in cui ho pensato di risolvere questo è di avere una sola istanza di un oggetto (concretamente, una struttura) che è uguale a un altro. Ad esempio, dato:
typedef struct {
unsigned int day, month, year;
} day;
...
day *a = singleton_day(9, 3, 1999), *b = singleton_day(9, 3, 1999);
a
e b
saranno puntatori alla stessa posizione di memoria, poiché sono stati istanziati con valori identici.
Questa tecnica avrà un impatto positivo sullo spazio e sulle prestazioni algoritmiche del mio codice, ma non so come chiamare i primitivi di istanziazione. Mi piacerebbe ispirare un presunto modello di design, ma non so se esiste o se dovrei inventarne uno.