|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#61 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ma i linguaggi che usiamo generalmente sono Turing-completi.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#62 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Il problema non è se l'applicazione sia piccola o grande, se sia Hello World o tutto il codice di Windows. Il problema è che non è possibile dimostrare nello stesso modo che la decidibilità del programma "Hello World" valga anche per il programma "Windows". O è possibile ma allora non sarà possibile dimostrare che il programma "JVM" sia decidibile nello stesso modo di "Hello World" e "Window". O magarì per quei tre vale ma...eccetera eccetera...ci sarà sempre almeno un programma la cui decidibilità non è dimostrabile come lo è per tutti gli altri.
Non dice affatto che uno specifico programma sia dimostrabilmente privo di bug. Questo per come l'ho capita io: la faccenda è molto complicata. |
|
|
|
|
|
#63 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
E lo è sicuramente. Il nocciolo della questione è che non è possibile realizzare un'applicazione che sia in grado di decidere se una qualunque altra applicazione sia bacata o meno (senza tirare in ballo il concetto di arresto).
Quindi è una questione prettamente programmatica o, usando un termine caro a noi programmatori, di automazione di questo tipo di calcolo, che è irrealizzabile. Su singole, specifiche, applicazioni la questione è decidibile o meno, a seconda se riusciamo a produrre una dimostrazione. Quindi data l'applicazione f e l'input x provare che il calcolo viene completato (non c'interessa il tempo, purché sia sicuramente finito) e l'output sia effettivamente y (quello che ci aspettavamo). Questo sul piano formale rimanendo nell'ambito della pura teoria della computabilità. Nella realtà, invece, la situazione è anche peggiore, perché valgono anche le considerazioni di Kralizek, per cui anche il tuo banalissimo "Hello, world!" può risultare bacato, a seconda delle condizioni esistenti al momento della sua esecuzione.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#64 | |
|
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
Quote:
|
|
|
|
|
|
|
#65 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
OK, Krallo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#66 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Credo sia neccessario, per chiarezza, considerare sempre il linguaggio in cui è espresso il programma in questione.
[1] Come si legge in quelle pagine di Wikipedia, un Decider (macchina che termina sempre) è meno potente di una MdT, però non soffre del problema della fermata (che anzi garantisce sempre). Il fatto è che un Decider ha a che fare con programmi espressi in linguaggi ricorsivi. La MdT invece, ha a che fare con linguaggi ricorsivamente enumerabili e c'è il problema della fermata. Per come l'ho capita io, le implicazioni di questo teorema non sono che "non è mai possibile determinare se un programma terminerà in un tempo finito" o meno, ma soltanto(si fa per dire) che "non è possibile realizzare un algoritmo che riesca a determinare se un programma terminerà o no, per qualsiasi programma espresso in un linguaggio ricorsivamente enumerabile ci venga in mente". [2] Prendendo l'esempio di PGI: Codice:
public class Main {
public static void main(String[] args) {
System.out.println("hello world");
}
}
Cito un passaggio importante: Quote:
Certo ciò non significa che "è impossibile scrivere un programma privo di bug" ma solo che "è impossibile provare, per qualsiasi programma espresso in un linguaggio ricorsivamente enumerabile, eseguito da una MdT, che quel programma è privo di bug". O almeno è quello che ho capito io. Come ha detto marco.r, forse bisogna passare ad un altro modello diverso da quello della MdT.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#67 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
certo che a studiare teoria della computazione, leopardi si sarebbe sparato una dose endovena. "questa roba" (cit.) é piú pessimista di lui
(tralasciamo che in realtá lui fosse un ottimista secondo alcuni critici letterari, per la massa lui é Il Pessimista) |
|
|
|
|
|
#68 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
E non avrebbe avuto tutti i torti.
Comunque le macchine che terminano sempre (decider) risolvono soltanto una parte dei problemi formalizzabili sotto forma di algoritmi. Non possono, pertanto, computare tutti i tipi di problemi che una macchina Turing-completa (o equipotente che dir si voglia) è in grado di risolvere. Se praticamente tutti i linguaggi di programmazione conosciuti sono Turing-completi non è certo per capriccio, ma perché serve la loro "potenza espressiva". Per quanto riguarda il problema di bug / terminazione & affini, è corretta l'interpretazione di banryu (e di PGI in precedenza), ma... anche l'osservazione di monsieur Krallo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#69 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4683
|
Quote:
Poi tu che andavi nei forum??
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:54.




















