Dietro il coding/Secondo Intermezzo: le differenze tra linguaggi: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 7:
La formula per il calcolo dell'ennesimo numero di Fibonacci è:
<nowiki>*******</nowiki>
con:
<nowiki>*******</nowiki>
in cui ф è la sezione aurea
<nowiki>*******</nowiki>
Un po' complicato? Beh, utilizzando un linguaggio di programmazione si può costruire la sequenza senza fare uso della sezione aurea e della formula matematica, semplicemente simulando il processo passo dopo passo.
Fn = F n-1 + F n-2
F1 = 1
F2 = 1
F3 = F1 + F2 = 1 + 1 = 2
F4 = F2 + F3 = 1 + 2 = 3
F5 = F3 + F4 = 2 + 3 = 5
…
Così la programmazione serve a risolvere un problema anche quando non se ne possiede una visione perfetta. In questo senso, programmare è un ausilio formidabile per l'apprendimento per scoperta.
E ci sono tanti modi diversi per arrivare ad una soluzione.
Alcuni esempi scritti in linguaggi diversi, tratti da http://www.scriptol.com/programming/fibonacci.php, possono servire a dare un'idea della differenza tra linguaggi di programmazione.
Line 60 ⟶ 69:
})
RUBY
def fibonacci( n )
end
PERL
sub fibo;
sub fibo {$_ [0] < 2 ? $_ [0] : fibo ($_ [0] - 1) + fibo ($_ [0] - 2)}
LOGO▼
to fibonacci :N▼
ifelse :N < 3 [output 1] [output sum fibonacci :N - 1 fibonacci :N - 2]▼
end▼
▲LOGO
▲ to fibonacci :N
▲ end
Come si vede, pur essendo tutte rappresentazioni dello stesso algoritmo, ci sono differenze superficiali enormi: dalla sintassi all'uso delle parentesi e della punteggiatura, ai termini usati per introdurre la funzione (def, sub, to). Però c'è chi sostiene che una volta imparati i primi due o tre linguaggi, poi è tutta discesa.
Come per le lingue naturali, E tutto sommato, una parentela tra apprendimento delle lingue naturali e dei linguaggi artificiali si può tentare di tracciare. Più in generale: ci sarebbe solo da guadagnare nello studiare i linguaggi di programmazione con gli stessi concetti con cui si studiano le lingue: evoluzione, derivazione, numero di parlanti, letteratura, stili...
== Note ==
|