Newsgroup: it.scienza.informatica
Titolo: una domanda semplice

Salve,
vorrei farvi una domanda banale:
-se io creo una funzioneA con n parametri
-e poi creo una funzioneB con n parametri
-e poi creo una funzioneC con n parametri che chiama le funzioni A e B
Se continuo di pari passo, cioe' creando nuove funzioni sempre di piu' alto
livello, fino a quanto posso crescere di livello,
in teoria, fin dove posso arrivare?
Ovviamente penso che aumentando il livello di complessita' delle funzioni,
aumentano i parametri delle funzioni.
Qual'e' la strada migliore da seguire?
fino a che livello si puo' arrivare?
avete qualche sito/articolo/libro da consigliarmi?
Grazie e Saluti
Davide

 aumentano i parametri delle funzioni.
Cosa e` il livello di complessita`?


 wrote in message
news:6rg17.12508$D03.4...@news.infostrada.it...


 fino a che livello si puo' arrivare?
In teoria fin dove vuoi , in pratica sei limitato dalla memoria del sistema
ma ancor prima , forse , dalla difficolta' di gestione di un progetto cosi
vasto.
Ciao.
Gabriele.

 fino a che livello si puo' arrivare?
In teoria fin dove vuoi , in pratica sei limitato dalla memoria del sistema


 ha scritto nel messaggio
news:3B45D337...@imc.pi.cnr.it...














 di un programma solo (anche complesso)
Detta cosi' puoi fare tutto. Pensa, una funzione che prende 16384 parametri di
tipo int (con int da 32 bit) puo' teoricamente fare qualunque cosa fosse
fattibile con un commodore 64.
O una funzione che prende 81920 parametri di tipo long (con long da 64 bit) puo'
fare tutto quello che era fattibile su un PC dell'inizio degli anni 80.
Il fatto e' non serve a nulla dato che il problema e' decidere che valori dare a
quei parametri.
Il vero vantaggio dei sistemi ad alto livello non e' che hanno piu' parametri in
meno funzioni. Ma che hanno piu' funzioni che fanno tante cose con pochi
parametri obbligatori (ed eventualmente molti con valori di default).
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

Davide wrote:
 > Ciao, ti ringrazio per la risposta,
 > scusa se non sono stato molto preciso nella mia domanda
 > e cerchero' di spiegarmi meglio.
 >
 > Quando parlavo di funzioni, intendevo dire le "normali 
funzioni/subroutine"
 > che si possono creare con i piu' comuni linguaggi procedurali, es. VB.
 > Quando parlavo di livello di complessita' intendevo questo:
 > -esistono linguaggi di terza generazione - 3GL    (es. C)
 > -esistono linguaggi di quarta generazione -4GL   (es. Java?)
 > -ecc.......
Questo distinzione non la conoscevo. Dove la posso trovare?
Quali sono quelli della prima e seconda generazione?
 > Penso che un linguaggio di quarta generazione sia' piu' "ad alto livello"
 > (astratto)
 > rispetto a quello di 3a generazione, ma mi chiedo anche in che modo....
 > Io avendo lavorato sia con 4GL che con 3GL,
 > ho notato che nel linguaggio 4GL esistono funzioni che permettono di
 > svolgere il lavoro
 > equivalente di 2 o piu' funzioni 3GL, ma richiedono anche qualche 
parametro
 > in piu'.
Dunque, francamente credo si stiano confondendo il linguaggio con le
funzioni del linguaggio.
In C non ci sono funzioni di libreria. (la printf non fa parte del
linguaggio C!)
ma delle 'librerie standard (POSIX) per il C'. Ossia non e' obbligatorio
usarle.
(Ti assicuro che esistono in giro librerie per il C da far invidia alla
quintalata di
librerie e attrezzi per il Java).  Cosi` il Java (che e` comunque molto
piu`
complesso e ricco del C per quanto riguarda il linguaggio) ha una marea di
librerie, che pero` sono esterne e compete al programmatore il loro uso o
meno.
 > Facendo un paragone fra linguaggi e le funzioni/subroutine che si possono
 > implementare
 > all'interno di un normale software, ad esempio:
 > funzioneA(param1,param2)
 > funzioneB(param1,param2)
 > funzioneC(param1,param2,param3,param4)
Se c'e' qualche implicazione funzionale tra param3 e 4 e i primi 2 si, 
altrimenti
no.
Ossia se param3 o 4 si possono calcolare dai primi due. Altirmenti devi
usare tutti i parametri.
 > Mi chiedo se posso in teoria arrivare a creare una mega-funzione, 
partendo
 > da micro-funzioni
 > e crescendo progressivamente di livello,
 > che semplicemente agendo sui parametri della mega-funzione, mi possa
 > svolgere il lavoro equivalente
 > di un programma solo (anche complesso)
Ovviamente , in C non scrivi int main(int argc,...) ... non e` una funzione?
Vabbe` va... mi togli una curiosita`: hai in mente qualche esempio preciso?
Comunque visto che ti sei posto il problema, credo che la classificazione
3 4 ecc... sia furviante, (sarebbe piu` corretto dire un programmatore
della
prima generazione...) e dai un'occhiata a questo sito quando hai tempo
http://caml.inria.fr/index-eng.html
(dubito che riuscirai a includere il linguaggio ML nello schema di
prima, CAML in ogni caso e' un particolare linguaggio della famiglia ML, 
e si
pronuncia CA'MEL, non come le sigarette... sono francesi ci tengono :-) )


"Introduzione agli Algoritmi" di Cormen , Leiserson , Rivest. Jackson Libri.
E dove ne parla? Nella sezione degli approfondimenti?
Gran bel libro quello e l'ho studiato anche molto volentieri: poi la
frase sul paragone tra gli algoritmi e i coltelli per tagliare la
bistecca e' nella mia homepage: 
http://abondi.ijk.it/

 parametri obbligatori (ed eventualmente molti con valori di default).
[OT]
Ti confermo che ho usato per molti anni uno dei primi 4GL in
circolazione (Progress) e
infatti e' esattamente come dici tu, pochi parametri obbligatori e molti
con valori di default,
e' veramente stupendo!
Saluti
Savide

 pronuncia CA'MEL, non come le sigarette... sono francesi ci tengono
:-) )
ho visto il CAML, e' un linguaggio interessante, potente e abbastanza
facile da usare,
farebbe proprio al caso MIO!!!
pero' stranamente assomiglia molto al CLEAN che ha pero' un ambiente di
sviluppo migliore....
assomigliano entrambi al Lisp e al Prolog, ma sicuramente sono piu'
potenti.
Saluti
Davide

 - ICQ# 92905138
http://www.mascanc.net/~skolem


Attenzione. Non so se hai sbagliato a quotare o se c'e' qualche furbetto in
circolazione. Ma io non ho MAI postato un messaggio contenente quello che tu
dici. E non ho idea di cosa sia Progress.


Davide wrote:
 >
 > ho visto il CAML, e' un linguaggio interessante, potente e abbastanza
 > facile da usare,
 > farebbe proprio al caso MIO!!!
 > pero' stranamente assomiglia molto al CLEAN che ha pero' un ambiente di
 > sviluppo migliore....
 > assomigliano entrambi al Lisp e al Prolog, ma sicuramente sono piu'
 > potenti.
Da quello che mi hanno raccontato camel e` decisamente il piu` veloce e quello
che viene compilato meglio. (in alcuni casi e` piu` veloce dell'equivalente
imperativo)
Quanto all'ambiente di sviluppo semplicemente camel (per fortuna) non ha
ambiente
di sviluppo. Cosicche` puoi usare emacs senza problemi.
 >
 > Saluti
 > Davide
 >