questa è la categoria del futuro! Se ti interessa l’innovazione, lo sviluppo tecnologico, ma anche le scienze in generale e le tecnologie del futuro, qui troverai gli articoli che ti appassioneranno. Ci sono articoli di matematica, ma anche di fisica e astrofisica, di elettronica generale, di tecnologie innovative e curiosità sull’affascinante mondo delle scienze.
Applicando ciò che abbiamo imparato nei paragrafi precedenti, dobbiamo considerare che non renderemo nota all'esterno la struttura di un nodo. Al contrario, però, dobbiamo inserire alcune dichiarazioni nel file header value.h
Come si analizza un'espressione. Se vogliamo elaborare valori numerici e semplice aritmetica, possiamo estendere le funzioni di riconoscimento e calcolare i risultati non appena riconosciamo gli operatori e gli operandi: sum() si aspetterebbe un risultato di tipo double da ogni chiamata a product(), provvede a calcolare l'addizione o la sottrazione il più presto possibile e restituisce il risultato come un valore double.
Ad un alto livello di analisi, le espressioni vengono riconosciute dalla funzione sum() che internamente chiama scan() e restituisce una rappresentazione che può essere analizzata da process() e da delete().
Nel ciclo principale, una volta che una linea di input è stata letta in bug[], viene passata a scan(), che per ogni chiamata inserisce il successivo simbolo di input all'interno della variabile token.
Tutto è iniziato a Gennaio a Campo de Fiori a Roma, sorseggiando un buon bicchiere di vino e discutendo del futuro dell’elettronica embedded. L’argomento di discussione era la mancanza di un modulo wireless facilmente programmabile e che non solo supportasse lo stack, ma anche le applicazioni.
Il dynamic Linkage è di per sè una tecnica di programmazione veramente potente. Piuttosto che scrivere poche funzioni, ognuna con una lunga sequenza di istruzioni nel costrutto switch - cosa che sicuramente permette di gestire una varia casistica - potremmo scrivere molte piccole funzioni, una per ogni caso ed utilizzare la funzione più adatta tramite il dynamic linkage.
Per illustrare cosa possiamo fare con il costruttore e l'interfaccia del distruttore implementeremo atomi. Un atomo è un unico oggetto striga. Se due atomi contengono le stesse stringhe sono identici.
E' pronto il primo jailbreak del sistema operativo OS 4.0, lo stesso che completerà il prossimo iPhone 4G.
Implementiamo le stringhe scrivendo i metodi che necessitano di essere inseriti nel descrittore di tipo String. Il dynamic linkage aiuta nell'identificare chiaramente quali funzioni devono essere "scritte" per implementare il nuovo tipo di dato.
Anche se non abbiamo ancora implementato le stringhe, siamo già capaci di leggere un semplice programma di test. String.h definisce il tipo di dato astratto:
Una notizia un po' ridicola... Gray Powell, un Software Engineer di Apple, perde un prototipo dell'iPhone 4G e cosi vengono svelate le foto dell'iPhone di quarta generazione.
Se improvvisamente vi viene la voglia di dolce, potete progettare una macchina per lo zucchero filato. Per me questa macchina era molto misteriosa fino a quando ho trovato il progetto online.
La parte critica sta certamente nell'ipotesi che si possa trovare un puntatore al descrittore di tipo *self direttamente al di sotto del puntatore arbitrario self. Per il momento ci limiteremo a vigilare che non vi siano puntatori nulli.
Chi realizza in pratica il cosiddetto messaging? Il costruttore chiamato da new() per allocare una nuova area di memoria non è praticamente inizializzato:
Greg ha sviluppato una versione di Debian/ FreePBX/ Asterisk per chi vuole utilizzare SheevaPlug.
delete() deve essere in grado di localizzare il distruttore senza sapere che tipo di oggetto le è stato passato. Di conseguenza, rivisitando le dichiarazioni fatte nella sezione 2.1 dobbiamo fare in modo che il puntatore usato per localizzare il distruttore si trovi all'inizio rispetto a tutti gli oggetti passati a delete(), indipendentemente dal loro tipo.
La domanda a questo punto sorge spontanea: Perché tutto questo ritardo? Nathan Brookwood, principale analista di Insight 64, crede che si tratti semplicemente del fatto che per ora USB 3.0 non rappresenta una priorità per Intel. “USB 2.0 sta svolgendo ancora un ottimo lavoro per la maggior parte delle persone. E per quanto riguarda le videocamere HD e le fotocamere digitali, che potrebbero trarre notevoli benefit dalle maggiori velocità di trasferimento offerte da USB 3.0, il discorso cambia: le persone che pagherebbero di più per avere prestazioni sempre al top sono le stesse che comprerebbero un HP EliteBook o …
Supponiamo di implementare un semplice tipo di dato stringa che provvederemo in seguito ad includere in un set. Per una nuova stringa allocheremo un buffer dinamico che ne contenga il testo. Quando la stringa verrà cancellata, dovremo liberare il buffer.
USB 3.0 non vedrà una suo utilizzo su larga scala fino almeno al tardo 2011, a causa della mancanza di supporto diretto da Intel. In conseguenza di ciò, quindi, il nuovo standard probabilmente non riuscirà ad essere protagonista di questo decennio, così come USB 2.0 lo è stato per la maggior parte dello scorso. Lo standard USB corrente, che si trova su ogni gadget e dispositivo in circolazione al momento, viene utilizzato ormai da molto tempo, essendo disponibile dal lontano 2001 e dalla primavera del 2002 Intel lo ha diffuso su larga scala implementando questa tecnologia nei propri dispositivi.
Se un oggetto può appartenere a più set allo stesso tempo, dobbiamo necessariamente disporre di una diversa rappresentazione per i set. Se continuassimo a rappresentare gli oggetti come un numero intero univoco e se impostassimo un tetto al numero di oggetti disponibili, potremmo rappresentare un set come una mappa di bit memorizzati in una lunga stringa di caratteri, dove un bit selezionato dal valore dell'oggetto è impostato o "azzerato" in base o meno alla presenza dell'oggetto nel set.