Utente:Jk4u59/Sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Jk4u59 (discussione | contributi)
Nessun oggetto della modifica
Jk4u59 (discussione | contributi)
Nessun oggetto della modifica
Riga 27:
Un ricercatore della Cornell University ha affermato che Solidity è stato parzialmente incolpato del tentativo di hackerggio  The DAO che ha avuto luogo nel 2016, affermando: "questo non era in realtà un difetto o un exploit nel contratto DAO stesso: tecnicamente l'EVM funzionava come previsto, ma Solidity stava introducendo falle nella sicurezza in contratti che non solo sono stati ignorati dalla comunità, ma che sono stati ignorati dai designer stessi. " <sup>[11]</sup> <sup>[12]</sup>
 
==Storia Descrizione ==
Solidity è un linguaggio di programmazione tipizzato staticamente progettato per lo sviluppo di contratti intelligenti ([[smart contract]]) eseguiti su EVM. <sup>[13]</sup> <sup>[14]</sup> Solidity è compilato in bytecode che è eseguibile su EVM. Con Solidity, gli sviluppatori sono in grado di scrivere applicazioni che implementano una logica di business autoconsistente incorporata in contratti intelligenti (smart contracts), lasciando una autorevole registrazione delle transazioni che non è non ripudiabile. <sup>[15]</sup> <sup>[16] La</sup> Scrivere contratti intelligenti in linguaggi specifici di questo ambiente, come Solidity, è giudicato “semplice” (ovviamente per coloro che hanno già competenze di programmazione). <sup>[17]</sup>
 
Come specificato da Wood, è progettato attorno alla sintassi ECMAScript per renderlo familiare agli sviluppatori web esistenti; a differenza di ECMAScript ha tipizzazione statica e tipi di ritorno variabili. Rispetto ad altri contemporeanei inguaggi di targeting EVM, come Serpent e Mutan, Solidity conteneva una serie di importanti differenze. Sono state supportate variabili con membri complessi per contratti che includono mappature arbitrariamente gerarchiche e strutture. I contratti supportano l' ereditarietà , inclusa l'ereditarietà multipla con la linearizzazione C3 . È stata introdotta anche un'interfaccia binaria applicativa (ABI) che facilita più funzioni di sicurezza del tipo all'interno di un singolo contratto (e successivamente supportata da Serpent). Nella proposta è stato incluso anche un sistema di documentazione per specificare una descrizione incentrata sull'utente delle ramificazioni di una chiamata di metodo, nota come "Natural Language Specification". <sup>[18]</sup> <sup>[19]</sup>
 
Esempio di un programma Solidity: <sup>[20]</sup> <sup>[21]</sup>
 
<source lang="js">
 
contract GavCoin
{
mapping(address=>uint) balances;
uint constant totalCoins = 100000000000;
 
/// (EN) Endows creator of contract with 1m GAV.
/// (ITA) Fornisce il creatore del contratto con 1m GAV
function GavCoin(){
balances[msg.sender] = totalCoins;
}
 
/// (EN) Send $((valueInmGAV / 1000).fixed(0,3)) GAV from the account of $(message.caller.address()), to an account accessible only by $(to.address())
/// (ITA) Invia $ ((valueInmGAV / 1000) .fixed (0,3)) GAV dall'account di $ (message.caller.address ()), ad un account accessibile solo da $ (to.address ()).
 
function send(address to, uint256 valueInmGAV) {
if (balances[msg.sender] >= valueInmGAV) {
balances[to] += valueInmGAV;
balances[msg.sender] -= valueInmGAV;
}
}
 
/// (EN) getter function for the balance
/// (ITA) Funzione getter per il saldo
function balance(address who) constant returns (uint256 balanceInmGAV) {
balanceInmGAV = balances[who];
}
}
</source>
 
==Storia rollei==
Il nome "Rolleiflex" è comunemente usato per riferirsi alla linea di [[Fotocamera|fotocamere]] [[Single-lens reflex|reflex]] biottiche TLR ([[Twin-lens reflex|Twin Lens Reflex]]) della [[Rollei]]. Per alcuni decenni fu in commercio anche una linea derivata destinata ai fotografi dilettanti, la Rolleicord.
Tuttavia, sono stati prodotti con il marchio Rolleiflex anche una varietà di TLR e SLR ([[Single-lens reflex|Single Lens Reflex]]) in medio formato e messa a fuoco zonale, SLR da [[35 millimetri|35 mm]], nonché apparecchi digitali.