Una domanda sull'implementazione degli oggetti in una lingua scritta in C

4

Sono abbastanza nuovo alla programmazione (circa quattro mesi di apprendimento), e ho deciso di scherzare con un tentativo di scrivere una lingua in C sia per divertimento che per pratica, e mi sto chiedendo come vengono implementati gli oggetti quando si scende a esso.

Al momento sto solo cercando di trasformare il mio 'codice' in un c-file, e poi lo compilo, quindi l'approccio che sto pensando di fare è far diventare il mio compilatore ogni metodo di classe in una funzione e il il resto dell'oggetto una struct e sostituisce qualsiasi chiamata a quel metodo con la funzione mentre passa le variabili appropriate da qualsiasi istanza chiama il metodo class. (cioè aggiungendo l'interno alla lista di argomenti e modificando la quantità di argomenti il il metodo accetta per corrispondere)

Quindi la mia domanda è (ignorando le altre cose che gli oggetti fanno al momento), "quanto è brutto questo approccio", e anche se va bene, qual è il solito modo?

    
posta Orangesandlemons 08.06.2016 - 19:43
fonte

2 risposte

3

Sembra il vecchio compiler CFront - che ha compilato C ++ in C:

Cfront was the original compiler for C++ (then known as "C with Classes") from around 1983, which converted C++ to C; developed by Bjarne Stroustrup. The preprocessor did not understand all of the language and much of the code was written via translations. Cfront had a complete parser, built symbol tables, and built a tree for each class, function, etc.

Quindi il tuo approccio è stato fatto prima con un certo successo. Suggerirei sicuramente che è una tecnica utile.

    
risposta data 08.06.2016 - 22:21
fonte
0

Sono d'accordo con Robert Harvey ... questo non è un approccio negativo. Se vuoi vedere un esempio di design di "classe" in c che utilizza un approccio diverso, guarda X11 / xview / etc link per vedere come vengono utilizzate le strutture come le classi ...

    
risposta data 08.06.2016 - 20:04
fonte

Leggi altre domande sui tag