Pagina 1 di 1

OOP with C

MessaggioInviato: 23 giu 2013, 3:17
da fairyvilje
Salve, visti gli stumenti concessi dalla microchip mi trovo costretto a programmare in C, cosa che solitamente evito :D.
Visto che ho dovuto rispolverare alcune tecniche per simulare le caratteristiche dei linguaggi orientati agli oggetti in C, anche io sto lavorando sul Pierin PIC18, mi chiedevo se qualcuno fosse interessato all'argomento, e nel caso se valesse la pena spenderci qualche articolo, visto che è un tema poco trattato per quello che ne so.
Notte ;)

Re: OOP with C

MessaggioInviato: 23 giu 2013, 14:30
da xyz
Non conosco quel compilatore C ma esistono librerie scritte in C con il paradigma del OOP, la più nota open source multi piattaforma è la GTK+ (credo non utilizzabile in un microcontrollore).

Esistono dei libri che spiegano come utilizzare il C per programmare OOP come "Object Orientated Programming in ANSI-C", liberamente consultabile:

http://www.cs.rit.edu/~ats/books/ooc.pdf

Il primo compilatore C++ col nome Cfront, sviluppato da Bjarne Stroustrup in persona, era nient'altro che un front-end verso il C.

Per me un buon programmatore in C++ non dovrebbe aver problemi a programmare C (soprattutto se prima di programmare in C++ ha iniziato in C :-) ), il contrario è più difficile.

Re: OOP with C

MessaggioInviato: 23 giu 2013, 14:40
da fairyvilje
Mi ricordo di quel documento, se non sbaglio usa anche awk per risolvere alcuni problemi.
In effetti mi chiedo perché la microchip non abbia direttamente considerato il C++ come linguaggio di programmazione per i PIC anche delle vecchie famiglie, ovviamente depurato della STL e della STD se risultano troppo pesanti, ma con la libertà che templates, classi ed oggetti garantiscono nel codice. Alla fine della fiera del codice C++ ben programmato non è più pesante della sua controparte C.

Re: OOP with C

MessaggioInviato: 23 giu 2013, 14:46
da nand92
a me interesserebbe molto un articolo del genere :ok:

Re: OOP with C

MessaggioInviato: 23 giu 2013, 15:44
da TardoFreak
Il C++ non è usatissimo con i microcontollori per via dell' allocazione degli oggetti. Allocare e disallocare continuamente oggetti, seppur nello stack (come fa la Keil) porta ad una notevole frammentazione della RAM. E visto che di RAM di solito non ce n'è tantissima si preferisce evitare problemi.
Per i Cortex-M c'è la possibilità di usare il C++ ma è usato molto di rado, non ostante gli M4 siano ben forniti.
Per simulare porpietà e metodi si usano delle struct con puntatori a funzione per esempio ma non è una pratica diffusa. Molto diffusa è invece la pratica di passare i parametri alle funzioni (quando sono molti) tramite puntatori a struct. Metodo semplice e molto veloce.