|
|
|
|
Strumenti |
08-09-2007, 11:08 | #81 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
La teoria del fare programmazione orientata agli oggetti in Assembly ha un che di strano. Io mi domando, ad esempio, come sia possibile esprimere una relazione tra oggetti avendo a disposizione una manciata di registri prenominati.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
08-09-2007, 11:13 | #82 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 1278
|
Quote:
i pregiudizi proprio non li mando giu della serie : " chi usa linux ha tempo da perdere " Uso con molta soddisfazione sia Xp che Debian Linux
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle! |
|
08-09-2007, 11:17 | #83 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
D'altra parte se un compilatore C++ genera codice Assembly partendo da una rappresentazione ad alto livello di gerarchie ad oggetti non vedo perché un programmatore masochista, in vena di martoriamento di zebedei, non possa scrivere a manina ciò che il compilatore genera in automatico. |
|
08-09-2007, 11:26 | #84 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
La possibilità di fare programmazione orientata agli oggetti si fonda sulla capacità dei compilatori di operare non solo come traduttori simbolici ma anche come trasformatori di prospettiva (da OO a procedurale nel caso di linguaggio OO).
Scrivere a mano ciò che produrrebbe un compilatore a fronte di un codice sorgente OO non è orientamento agli oggetti. Perchè il prodotto finale della compilazione è sempre ed immancabilmente procedurale. Lo è perchè la macchina che dovrà interpretare quel prodotto è meccanicamente vincolata ad un interpretazione procedurale dei fenomeni.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
08-09-2007, 11:44 | #85 | ||
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7065
|
Quote:
Codice:
#define SWAP(a, b, type) { type __tmp_c; c = b; b = a; a = c; } int main() { int a = 3; int b = 5; printf("a is %d and b is %d\n", a, b); SWAP(a, b, int); printf("a is now %d and b is now %d\n", a, b); return 0; } http://people.cs.uchicago.edu/~jacob...templates.html soprattutto quando dice Quote:
|
||
08-09-2007, 11:53 | #86 | |||
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Considera poi che il C++ è nato come un "C con le classi": Quote:
Quote:
|
|||
08-09-2007, 12:34 | #87 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Entità reale ed oggetto sono sinonimi. Non c'è un'associazione da fare. Credo che la definizione di forme sintattiche idonee a rappresentare gli oggetti corrisponda all'estensione del linguaggio.
Credo che il rapporto originario tra C e C++ da te citato sia un buon esempio. Come disse Alan Kay, C++ nasce come preprocessore di C, cioè introduce una serie di forme riconducibili a definizione C attraverso trasformazioni sintattiche automattizate. Estende il linguaggio perchè l'atto di predisporre queste forme, l'atto di introdurre nel linguaggio questi opportuni costrutti, deve essere ripetuto ogni volta che si scriva un programma in una prospettiva diversa da quella che è naturale per il linguaggio. E', ancora una volta, la famigerata trappola di turing: un linguaggio non supporta una caratteristica se tale caratteristica deve essere definita ogni volta che la si voglia usare. Poichè un linguaggio è identificato dall'insieme di caratteristiche che supporta, l'introduzione in pianta stabile di una forma sintattica non presente nell'originale produce necessariamente un nuovo linguaggio. Insomma, fare programmazione orientata agli oggetti in assembly significa creare un linguaggio diverso da assembly. Ergo la programmazione orientata agli oggetti in assembly non è possibile.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
08-09-2007, 12:39 | #88 | ||
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7065
|
Quote:
FONTE: http://www.ordineingegneri.bergamo.i...e02/storia.htm per quanto riguarda GIT vi consiglio di conoscerlo prima di giudicarlo.. perchè non è vero che software di quel tipo ce n'è a bizzeffe |
||
08-09-2007, 12:48 | #90 | ||
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1816
|
Quote:
Quote:
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
||
08-09-2007, 12:50 | #91 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7065
|
|
08-09-2007, 12:54 | #92 | ||
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7065
|
Quote:
Quote:
vero è che il supporto alla metaprogrammazione offerto dal C++ non è quanto di meglio si poteva pensare e qui rimando al link di prima |
||
08-09-2007, 12:55 | #93 |
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 961
|
Effettivamente no, non l'ha scritto lui.
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN |
08-09-2007, 12:59 | #94 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Nel libro Object Oriented Programming with ANSI-C viene discusso un possibile approccio all'OOP in C, esistono inoltre librerie che consentono di impiegare il paradigma ad oggetti in codice ANSI-C (ripeto per l'ennesimo volta: viene fuori una gran porcheria però si può fare), non mi sembra che usare una libreria equivalga a "creare un linguaggio diverso". Con un po' più di fatica e qualche ulteriore forzatura il discorso è applicabile anche all'Assembly. |
|
08-09-2007, 13:08 | #95 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7065
|
Quote:
ovvio che se devi implementare l'ereditarietà e tutto il resto diventa una porcheria, ma per quello infatti ci sono linguaggi apposta |
|
08-09-2007, 13:14 | #96 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Io parlo proprio della "possibilità", non dell'opportunità. Se fosse possibile sarebbe sempre opportuno usare la prospettiva orientata agli oggetti.
Una libreria può definire un diverso linguaggio se essa introduca forme sintattiche (modi di esprire le cose) non presenti nel linguaggio senza quella libreria. Il fatto che l'introduzione di una nuova forma sintattica corrisponda alla creazione di un diverso linguaggio deriva dalla definizione di linguaggio (insieme di regole sintattiche per l'espressione di significati).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
08-09-2007, 13:25 | #97 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1816
|
Quote:
Ad esempio gli iteratori, anche se molto comodi, richiedono una quantita' non banale di codice da scrivere, tanto che nei casi semplici uno non li usa, e ad esempio cicla direttamente sugli indici di un array. La cosa non e' bella perche' se certe forme, che dovrebbero esseer idiomatiche, non vengono usate nei casi semplici, i principianti tendono a non impararle e ad usarle col risultato che non lo faranno neanche nei casi in cui tornerebbe comodo, e rischiano di non capire quando lo fanno gli altri.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
08-09-2007, 13:47 | #98 | ||
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
OOP criticism and OOP problems Why I Prefer Procedural/Relational Over OOP Core Philosophical Differences OOP Versus Relational: Beyond the Hardware Nota bene: per progetti sopra le 100K LOC preferirei ricevere una manganellata sui gioielli di famiglia piuttosto che adottare l'approccio procedurale. In alcuni contesti (embedded, realizzazione di device drivers o comunque di codice "vicino" all'hardware, etc) l'uso di linguaggi OOP non introduce vantaggi, anzi comporta una serie di problematiche. Quote:
|
||
08-09-2007, 13:59 | #99 | |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
Quote:
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. Learn Falcon language sul sito ufficiale e sul mio RIP NBA3D |
|
08-09-2007, 14:37 | #100 | |||
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7065
|
Quote:
Quote:
Quote:
ecco perchè il modo corretto per risolvere il problema è il seguente Codice:
foreach (j, char c; input) { ... char a = c + (input[j%15]/input[j*(j-1)*(j-2)*(j-3)*(j-4)*(j^2)-1]); ... } poi ci sono casi in cui serve definire un modo particolare di iterare su una collezione e lì si usa il buon vecchio pattern Iterator, ma sono casi particolari. l'importante è non sentirsi stupidi a ciclare su array per via del fatto che vanno specificati tutte le volte i limiti dell'array e/o bisogna creare una variabile apposta per tenere il conto dell'indice corrente Ultima modifica di k0nt3 : 08-09-2007 alle 14:41. |
|||
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:26.