Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-05-2005, 15:33   #1
alesnoce
Member
 
Iscritto dal: May 2005
Messaggi: 80
Metaprogrammazione

L'idea di aprire questa discussione mi è venuta da partecipanti al thread "Iniziare a programmare in c++".

Poiché ancora nessuno di loro l'ha aperta, lo faccio io .

Con metaprogrammazione, nome che probabilmente, anzi sicuramente secondo una legge di Murphy, è già stato coniato da qualcun altro, con questa accezione o con una similare, intendo l'insieme di metodologie, idee, strumenti e quant'altro riguarda la programmazione, ma non è programmazione in senso stretto, come per esempio le tecniche di design che la precedono, i test che l'accompagnano, la manutenzione e le aggiunte che la seguono.

Tutto quello che insomma concerne il ciclo di vita del software.

Probabilmente è troppo ampio come orizzonte, ma vedrò di indirizzarlo verso quello che mi interessa per la mia tesi .

Ripropongo in parte una domanda fatta nella discussione summenzionata, alla quale dei grandi mi hanno già risposto, ma che di là era off topic e che qui sfrutto per partire:
che metodologia di design adottare per affrontare un progetto ampio (almeno per le mie capacità) che preveda l'adozione della programmazione OO?

Ultima modifica di alesnoce : 27-05-2005 alle 10:06.
alesnoce è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2005, 16:29   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
L'anno già aperto
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2005, 17:19   #3
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Comunque, seguendo la legge di Murphy, si, il termine Metaprogrammazione e' gia' stato coniato e intende tutt'altro.
In genere si riferisce alla programmazione logica (Prolog, Lisp, Scheme) proprio perche' non segue i canoni della programmazione classica bensi' quelli della logica matematica (proposizioni, sentenze, asserzioni, ecc)

mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2005, 17:57   #4
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da mjordan
Comunque, seguendo la legge di Murphy, si, il termine Metaprogrammazione e' gia' stato coniato e intende tutt'altro.
In genere si riferisce alla programmazione logica (Prolog, Lisp, Scheme) proprio perche' non segue i canoni della programmazione classica bensi' quelli della logica matematica (proposizioni, sentenze, asserzioni, ecc)

Quando ho letto Metaprogrammazione ho pensato subito al Template Metaprogramming e mi si e' incriccato il cervello... *track* *track* *tatrack*.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2005, 18:56   #5
Blackat
Senior Member
 
L'Avatar di Blackat
 
Iscritto dal: Oct 2004
Città: Acireale
Messaggi: 447
Io interpreto il concetto di metaprogrammazione come astrazione assoluta
della programmazione, cioè quella programmazione che non è legata a nessun
linguaggio di programmazione.

La metaprogrammazione si esprime attraverso un unico linguaggio che è il
metalinguaggio. Il metalinguaggio è il linguaggio con cui si può esprimere
un ragionamento logico. Il metalinguaggio può essere anche inventato
da chi fa metaprogrammazione, l'importante è che sia dato un senso ai
simboli utilizzati o che sia un linguaggio facilmente comprensibile, lontano
da quello tecnico.
Ad esempio se devo programmare l'algoritmo che somma il valori di un array
di interi posso scrivere

For I = 0 To dim(A)
Somma = Somma + A(i)
i = i + 1
roF

Questo può essere un metaprogramma dove dim(A) ritorna la dimensione
dell'array e A(i) l'elemento i-esimo dell'array.
Questo algoritmo può essere poi trasformato da questo metalinguaggio
in qualsiasi linguaggio di programmazione esistente.
__________________
Ho concluso acquisti e/o vendite con : SHIVA>>LuR<<, TheGaiden, ArvMau
Blackat è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2005, 21:13   #6
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da Blackat
Io interpreto il concetto di metaprogrammazione come astrazione assoluta
della programmazione, cioè quella programmazione che non è legata a nessun
linguaggio di programmazione.
Non e' 100% corretto. Cos'e' un metalinguaggio/metaprogramma e' ben definito e non soggetto a "interpretazione", nonche' uno dei fattori chiave dell'Intelligenza Artificiale. Un metaprogramma e' un programma che usa un altro programma (che in genere viene riferito come programma oggetto). Un metalinguaggio e' un linguaggio che si basa su un altro linguaggio, dove il linguaggio ausiliario e' detto linguaggio oggetto e il linguaggio base e' detto metalinguaggio. Un RSS (un Reasoning and Representation System) e' un metalinguaggio, costituito da un linguaggio formale, una semantica e una "reasoning theory", cioe' un altro linguaggio che definisce il modo con cui si possono derivare le risposte corrette. Nota che con la parola "linguaggio" non ci si deve necessariamente riferire ad un linguaggio di programmazione. Al massimo della definizione, un metaprogramma e' un programma che opera su altri programmi, come ad esempio un compilatore. Ma e' una definizione rara.
Anche una sintassi di un linguaggio di programmazione e' a tutti gli effetti, un metalinguaggio. Viene utilizzata per costruire, tramite le categorie sintattiche, appunto, un linguaggio di programmazione.
Un metalinguaggio, ha le sue regole e consente sempre si stabilire il vero e il falso mediante regole ben definite o da assunzioni considerate vere (semantica di Tarsky).

Codice:
La metaprogrammazione si esprime attraverso un unico linguaggio che è il
metalinguaggio. Il metalinguaggio è il linguaggio con cui si può esprimere
un ragionamento logico. Il metalinguaggio può essere anche inventato
da chi fa metaprogrammazione, l'importante è che sia dato un senso ai
simboli utilizzati o che sia un linguaggio facilmente comprensibile, lontano
da quello tecnico.
Il linguaggio oggetto non dev'essere unico. Anzi, nel mondo reale, molto spesso e' piu' di uno. Inoltre non e' affatto vero che un metalinguaggio debba essere lontano da quello tecnico.

Quote:
Ad esempio se devo programmare l'algoritmo che somma il valori di un array
di interi posso scrivere

For I = 0 To dim(A)
Somma = Somma + A(i)
i = i + 1
roF

Questo può essere un metaprogramma dove dim(A) ritorna la dimensione
dell'array e A(i) l'elemento i-esimo dell'array.
Questo algoritmo può essere poi trasformato da questo metalinguaggio
in qualsiasi linguaggio di programmazione esistente.
Quindi al momento che uno implementa un compilatore per questo linguaggio dato da te, smette di essere un metalinguaggio e diventa "linguaggio di programmazione"? No, la definizione di metalinguaggio e' parecchio piu' semplice. Quello e' esclusivamente uno pseudo-codice. Non da nessun mezzo per asserire verita' da proposizioni. Se stessimo in Filosofia, potrebbe anche essere vero. Ma in Informatica un metalinguaggio e' semplicemente un linguaggio che consente di stabilire il vero dal falso mediante altri linguaggi che definiscono proposizioni, asserzioni, negazioni.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2005, 09:46   #7
alesnoce
Member
 
Iscritto dal: May 2005
Messaggi: 80
Quote:
Originariamente inviato da cionci
L'anno già aperto
Un Murphy per alesnoce!

Solo ora l'ho visto

Quote:
Originariamente inviato da mjordan
Comunque, seguendo la legge di Murphy, si, il termine Metaprogrammazione e' gia' stato coniato e intende tutt'altro.
Un doppio Murphy per alesnoce!!
Ho la sbornia

Ritengo ancora che il termine metaprogrammazione si adatti a esprimere concettualmente l'insieme di elementi che ho elencato nel post iniziale, ma non voglio certo imporre l'accezione che gli ho dato come unica e vera

A ripensarci, anche ingegneria del software/software engineering va bene, solo che ormai il titolo del thread è tratto

Ultima modifica di alesnoce : 27-05-2005 alle 10:07.
alesnoce è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2005, 09:50   #8
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originariamente inviato da cionci
L'anno già aperto

cionci da te questo non me lo sarei mai aspettato...
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2005, 11:07   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ho abbreviato
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2005, 14:25   #10
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da VegetaSSJ5

cionci da te questo non me lo sarei mai aspettato...
Meglio un'abbreviazione senza un'h dovuta alla tastiera che un'abbreviazione nordica voluta del tipo "l'han gia' aperto"
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2005, 14:28   #11
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da cionci
Ho abbreviato
Ma non dar retta a cueste cose, si sa, ogni tanto si incastrano i diti nella pastiera
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Dopo 23 anni di silenzio, Warcraft 3 spi...
Roblox sfida l'ecosistema gaming: app st...
OpenAI accusata di plagio dai migliori m...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v