Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

OOP with C

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] OOP with C

Messaggioda Foto Utentefairyvilje » 23 giu 2013, 3:17

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 ;)
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...

Lo sapete che l'arroganza in informatica si misura in nanodijkstra? :D
Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3047
Iscritto il: 24 gen 2012, 19:23

3
voti

[2] Re: OOP with C

Messaggioda Foto Utentexyz » 23 giu 2013, 14:30

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.
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[3] Re: OOP with C

Messaggioda Foto Utentefairyvilje » 23 giu 2013, 14:40

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.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...

Lo sapete che l'arroganza in informatica si misura in nanodijkstra? :D
Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3047
Iscritto il: 24 gen 2012, 19:23

0
voti

[4] Re: OOP with C

Messaggioda Foto Utentenand92 » 23 giu 2013, 14:46

a me interesserebbe molto un articolo del genere :ok:
Avatar utente
Foto Utentenand92
55 1 2
 
Messaggi: 36
Iscritto il: 7 mag 2012, 18:10

1
voti

[5] Re: OOP with C

Messaggioda Foto UtenteTardoFreak » 23 giu 2013, 15:44

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.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare


Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti