Una domanda per gli esperti di OOP. - pagina 47

 
Non sarebbe meglio definire l'IA in termini di ciò che vogliamo da essa?
Questo è un piccolo passo verso l'attuazione.
Forse non dobbiamo farlo come l'intelligenza naturale, forse è sufficiente affidarsi a manifestazioni esterne di essa...
 
Реter Konow:

C'è un limite a tutto.

Ho trovato il problema con l'OOP standard:

  • Nell'eredità multipla.
  • Nei collegamenti incrociati tra le classi.
  • Il problema delle catene di eredità statiche e dell'incapsulamento statico. Ma cosa succede se un oggetto viene modellato e ha bisogno di una struttura dinamica? La riscrittura manuale non permetterà ad un tale Oggetto di evolversi rapidamente e naturalmente.

L'OOP standard manca della flessibilità che possiede il pensiero umano. Le strutture di tutti gli oggetti sono statiche, le relazioni ereditate non cambiano senza cambiare il codice. Questo è un grave inconveniente.


OOP è invariante ed è una proprietà naturale della Coscienza, ma la sua implementazione può avere degli inconvenienti.

Qual è il problema con l'eredità multipla e i collegamenti tra gli oggetti?
 
Sul terzo punto, Peter, non mi aspettavo da un apologeta di scrivere tutto a livello globale in array. Non avete variabili in campi di classe, ma contenitori, quindi potete aggiungerli/rimuoverli a runtime, e vi è già stato detto sopra sui freni correlati. A proposito, se scritto correttamente, i freni possono essere abbastanza accettabili.
 
Retag Konow:

C'è un limite a tutto.

Ho trovato il problema con l'OOP standard:

  • Nell'eredità multipla.
  • Nei collegamenti incrociati tra le classi.


L'OOP è invariante ed è una proprietà naturale della Coscienza, ma la sua implementazione può essere difettosa.

____________________________________________________________________________________

A cosa è invariante?

 
Aliaksandr Hryshyn:
Sarebbe meglio definire l'IA in termini di cosa vogliamo ottenere da essa?
Questo è già un piccolo passo verso l'attuazione.
Forse non è necessario fare come nell'intelligenza naturale, forse basta affidarsi alle manifestazioni esterne di essa...

Sì, hai ragione.

Voglio insegnare a un sistema informatico a modellare gli Oggetti.

Tecnicamente, pensare è riflettere e modellare gli oggetti e le relazioni della Realtà.

L'IA dovrebbe replicare il lavoro dell'intelligenza, che esamina gli oggetti della realtà, analizza i dati che riceve da essi e riproduce i loro modelli al suo interno.

 
Vladimir Simakov:
Sul terzo punto, Peter, non mi aspettavo da un apologeta di scrivere tutto a livello globale in array. Non avete variabili in campi di classe, ma contenitori, quindi potete aggiungerli/rimuoverli a runtime, e vi è già stato detto sopra sui freni correlati. A proposito, se scritto correttamente, i freni possono essere abbastanza accettabili.
Sì, ho capito che le proprietà possono essere aggiunte agli oggetti, ma senza aggiornare le relazioni con altre proprietà e oggetti, tale aggiunta non ha senso. Strutturalmente, ogni oggetto è integrato nell'ambiente di altri oggetti, e le loro relazioni sono complesse e confuse. L'OOP standard permette di cambiare le relazioni tra gli oggetti riscrivendo il codice e ricompilando. E l'aggiunta di nuove proprietà "al volo", non cambia la struttura dell'oggetto e il sistema mantiene la sua integrità, o si rompe. Il sistema stesso deve cambiare al volo.
 

Peter, deve trattarsi di qualcosa che riguarda la decifrazione del codice genetico e il modellamento di un oggetto secondo quel codice?

 
Алексей Тарабанов

____________________________________________________________________________________

A cosa è invariante?


OOP è la capacità di una persona di collegare le informazioni in una struttura gerarchica con una distribuzione di "strati", dal generale al particolare. Questa è l'"invarianza" dell'OOP. L'implementazione di OOP nel cervello umano e in un programma per computer è diversa.

 
Dmitry Fedoseev:

Peter, deve trattarsi di qualcosa che riguarda la decifrazione del codice genetico e il modellamento di un oggetto secondo quel codice?

Possibilmente. Ora è difficile assumere tutte le direzioni di applicazione pratica. Voglio solo fare un passo avanti.
 
Реter Konow:
Sì, ho capito che le proprietà possono essere aggiunte agli oggetti, ma senza aggiornare le relazioni con altre proprietà e oggetti, tale aggiunta non ha senso. Strutturalmente, ogni oggetto è integrato nell'ambiente di altri oggetti, e le loro relazioni sono complesse e confuse. L'OOP standard permette di cambiare le relazioni tra gli oggetti riscrivendo il codice e ricompilando. E l'aggiunta di nuove proprietà "al volo", non cambia la struttura degli oggetti e il sistema mantiene la sua integrità o si rompe. Il sistema stesso deve cambiare al volo.

C'è un nuovo operatore. Questo operatore permette di creare un nuovo oggetto in fase di esecuzione.

Ci sono array di puntatori a oggetti. Questi array permettono di metterci dentro un puntatore a qualsiasi oggetto.

Gli array di puntatori sono essi stessi degli oggetti.

Ora pensateci e rispondete: è possibile o no aggiungere proprietà agli oggetti al volo?