New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Discussione:Linguaggio di programmazione - Wikipedia

Discussione:Linguaggio di programmazione

Da Wikipedia, l'enciclopedia libera.

Indice

[modifica] riguardo a LINGUAGGI FUNZIONALI

leggo "In realtà Scheme, SML e Lisp non sono Linguaggi funzionali puri, anche se permettono di programmare in stile funzionale." ... ma ovviamente mi cheido... e come li distinguo? Perchè non lo sono? Come sono quelli che lo sono? ecc

[modifica] Funzionali vs. Imperativi

Caratteristica fondamentale di TUTTI i linguaggi funzionali è l'esprimibilità (oltre che denotabilità) delle funzioni o lambda-espressioni. I linguaggi imperativi NON hanno tale proprietà: le funzioni sono solo denotabili, ma non esprimibili, ovvero la valutazione di un'espressione non restituisce mai un valore di tipo funzionale né tanto meno di tipo di ordine superiore.


[modifica] Tutti i linguaggi hanno VARIABILI ed ISTRUZIONI???

Strano, leggo questa voce nella VETRINA e trovo delle affermazioni piuttosto strane...

[modifica] Relativamente all'introduzione

Non è vero che tutti i linguaggi abbiano _almeno_ variabili _ed_ istruzioni: sono concetti praticamente presenti assieme solo nei linguaggi imperativi.

[modifica] Relativamente alla classificazione dei linguaggi

Non è corretto porre i linguaggi ad oggetti come sottocategoria dei linguaggi imperativi. Ad esempio, OCaml è un linguaggio funzionale ad oggetti e, tra l'altro, ha una implementazione del modello ad oggetti molto più ricca di molti linguaggi imperativi ad oggetti (si pensi all'ereditarietà multipla).

[modifica] in generale

Non mi sembra affatto una voce "da vetrina": il livello del contenuto è piuttosto elementare. Confrontate pure con l'equivalente di Wikipedia.org...

Se ti aspettavi un trattato di 750 pagine sui linguaggi di programmazione è ovvio che sei rimasto deluso (e continuerai ad essere deluso, temo: un articolo di enciclopedia non è il luogo per un esame teorico approfondito della materia). Questa è una panoramica che intende dare, a chi non ce l'ha, una idea di cos'è e come funziona un linguaggio di programmazione. Quindi è bene che sia elementare, anzi secondo me c'è anche troppa roba. --Kormoran 11:28, 10 ott 2006 (CEST)
Per quanto riguarda variabili e istruzioni, confermo: tutti i linguaggi li possiedono. Se conosci un linguaggio che non ha variabili o che non ha istruzioni sono veramente curioso di conoscerlo, e anzi ti pregherei di dirmi qual'è... --Kormoran 11:28, 10 ott 2006 (CEST)

AHHHH AHHHH... dove sono le variabili nell'Assembler?

I linguaggi logici e quelli funzionali puri NON hanno istruzioni, e questo mi sembra abbastanza evidente...
Falso. Una clausola Prolog è una istruzione a tutti gli effetti. Probabilmente tu non la consideri tale perchè non è imperativa, ma è una istruzione: dopo la sua esecuzione, lo stato del calcolo (=l'insieme globale dei dati del programma) cambia. Stesso discorso per i linguaggi funzionali. --Kormoran 08:51, 7 nov 2006 (CET)

Ecco... bravo... guarda caso per il Prolog si evitano come la peste le semantiche a transizione di stati... e si usano invece quelle basate sui modelli di Herbrand! Dal tuo punto di vista, TUTTO E' ISTRUZIONE perche' valuti i linguaggi SULLA MACCHINA CONCRETA che e' chiamata ad eseguire il codice oggetto: ma questa è una grossa confusione dei livelli di astrazione, non credi? Lo stesso vale per i linguaggi funzionali, che derivano direttamente dal lambda-calcolo: MI DICI DOVE SONO LE ISTRUZIONI NEL LAMBDA-CALCOLO????

E, di grazia, dove si dovrebbe valutare un linguaggio di programmazione se non su una macchina concreta???
Sulla macchina astratta (= supporto runtime per linguaggi compilati, macchina concreta + interprete per linguaggi interpretati). Mi sembra ovvio.
Per quanto riguarda il lambda-calcolo, è prima di tutto un formalismo matematico, e come tale non ha ovviamente istruzioni, ma solo passaggi algebrici. Ma, implementato in un linguaggio di programmazione, il lambda-calcolo viene eseguito tramite istruzioni. Un conto è la matematica e un conto è la programmazione. Se speri di programmare un computer in base a formule matematiche stai fresco... le cose non funzionano così.
Beh, il paradigma di programmazione funzionale è molto vicino a "programmare in base a formule matematiche"...
Per quanto riguarda il Prolog, l'uso dei modelli di Herbrand si è affermato nel tentativo di manipolare la conoscenza astraendo dalle procedure di calcolo. Il problema è che non è possibile astrarre dalle procedure di calcolo durante la programmazione... che riguarda, caso strano, l'implementazione pratica e concreta di dette procedure.

Ti rispondo anche sull'assembler (sei sempre tu, immagino): in Assembler tutte le locazioni di memoria sono delle variabili a disposizione del programmatore: perfino quelle in ROM, se vogliamo, possiamo considerarle variabili statiche (più statiche di così!). Dal tuo punto di vista, probabilmente, non sono variabili perchè non hanno un bel cartellino con su scritto il nome e il tipo. Ma lo sono ugualmente.

Scusami se insisto, ma una locazione di memoria NON è una variabile. Si può dire che una variabile è implementata, sulla macchina concreta, tramite una sequenza di locazioni di memoria (ma anche questa è una banalizzazione che salta a piè pari la gestione delle gerarchie di memoria), ma di certo una variabile è un concetto astratto (= identificatore + valore contenuto) ben distinto da quello di locazione di memoria.
Detto questo, io ho di meglio da fare nella vita che dar da mangiare ai troll, per cui smetto di risponderti... av salùt --Kormoran 03:22, 7 apr 2007 (CEST)
Non è mia intenzione trolleggiare. Mi sembrava di avere fatto osservazioni pertinenti, no? Non mi permetto di toccare il testo della voce, desidero solo cercare di discutere SERENAMENTE su alcuni punti. Guarda che il tuo lavoro fin qui è stato notevole! Sono le pagine buone quelle che meritano di essere discusse, e mi spiace di poterlo fare solo saltuariamente.

[modifica] PHP


da quando il php sarebbe un linguaggio di SCRIPTING?!?!?!?!?!!

oddio... ve lo dico in veste di professore universitario...

Se ce lo dicevi in pigiama e pantofole era esattamente lo stesso. Comunque confermo anche questo: PHP, Javascript, JScript, VBscript sono tutti linguaggi di scripting. Lo sono perchè: 1) Gli eseguibili di questi linguaggi sono gli stessi file sorgente, non precompilati o preprocessati in alcun modo prima dell'esecuzione; 2) Tutti vengono interpretati dal server web, o direttamente o tramite un modulo apposito; 3) Sono pensati e realizzati specificamente ed esclusivamente per lo scripting di pagine web e non esistono altre applicazioni di tali linguaggi al di fuori di questo ambito. Sono curioso: secondo lei, signor professore, perchè il PHP non sarebbe un linguaggio di scripting, e che cosa sarebbe in realtà? --Kormoran 21:11, 13 ott 2006 (CEST)
La ragione sta nel mezzo... anzi, 2/3 per il (sedicente) professore:
1) significa solo che PHP è un linguaggio interpretato.
2) significa solo che un server web può generare pagine interpretando direttamente (o tramite un modulo di interpretazione) un sorgente PHP.
3) è forse l'unica, vera, motivazione valida: in PHP posso scrivere qualsiasi applicazione, ma è nato per il Web. Intendiamo, allora, "scripting"=="ad hoc"? Può essere.

I punti 1, 2 e 3 sono nè più nè meno la definizione di linguaggio di scripting. Se qualcosa nell'acqua ha la forma di un'anatra, si muove come un'anatra e starnazza come un'anatra ci sono ottime probabilità che sia un'anatra. Volendo argomentare ancora, esistono programmi diversi da un server web che usano PHP? No. Esistono compilatori che prendano un codice sorgente PHP e lo traducano in un file eseguibile per una specifica piattaforma? No, e per un ottimo motivo: PHP non ha primitive che gli consentano di interfacciarsi a un sistema operativo. E' un linguaggio pensato e realizzato per girare in un contesto preciso (cioè è un linguaggio "ad hoc", come giustamente osservato). Potrebbe essere diversamente? Certo: le primitive si potrebbero creare, il compilatore e le librerie di sistema si potrebbero scrivere.
Ma il linguaggio sarebbe qualcosa di diverso da quello che è ora, perchè dovrebbe affrontare problemi che ne richiederebbero una revisione (multitasking, multithreading, socket, gestione della memoria, accesso al file system: tutte cose che nel contesto attuale sono "invisibili", a carico dell'ambiente di esecuzione), e inoltre dovrebbe confrontarsi con i livelli di efficienza offerti dal C e dagli altri linguaggi di programmazione di sistema, perdendo in parte il suo vantaggio. Quindi, IMHO e per come stanno le cose ora, PHP e compagni sono dei linguaggi di scripting. --Kormoran 08:46, 7 nov 2006 (CET)

[modifica] VB come linguaggio orientato ad Oggetti?

Per favore, togliete dalla lista dei linguaggi ad oggetti il Visual Basic.. Non implementa tutti i meccanismi tipici della programmazione ad oggetti (incapsulamento,ereditarietà, polimorfismo), quindi si può ritenere che non appartenga a questa categoria. Grazie

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu