Assembler, C, C++2018-12-06T17:03:10+00:00

Assembler, C, C++.

Assembler

Assembler (o assembly, spesso abbreviato asm) è un linguaggio di programmazione a basso livello specifico per ogni architettura. Mentre la maggior parte dei linguaggi di programmazione di alto livello sono generalmente compatibili con diverse architetture, pur richiedendo l’interpretazione o la compilazione, ogni linguaggio assembly è scritto ad hoc per una particolare architettura e sistema operativo del computer. Esistono quindi diversi linguaggi, ad esempio per microcontrollori ARM e Microchip PIC18 (o PIC32 che introduce altre istruzioni).

Assembler è un linguaggio di programmazione “complicato” ed “oscuro” rispetto ai più noti ed utilizzati linguaggi ad alto livello, ma permette di definire esattamente ogni singola istruzione eseguita del microcontrollore. In assembly ogni istruzione o opcode della macchina di basso livello (e in genere anche ogni registro architettonico, flag, ecc.) è associata a un codice mnemonico.

Resco sviluppa, così come può modificare od aggiornare, codice assembler per vari microcontrollori come PIC18 ed altri.

C

C è uno dei linguaggi di programmazione più utilizzati in assoluto. I programmi scritti in linguaggio C consistono in una serie di espressioni matematiche e istruzioni imperative suddivise in procedure parametrizzate capaci di manipolare dati di vario genere: tecnicamente C viene definito un linguaggio di programmazione imperativo ad alto livello di natura procedurale.

Originariamente sviluppato da Dennis Ritchie tra il 1969 e il 1973 presso i Bell Labs per reimplementare il sistema operativo Unix, C è uno dei linguaggi di programmazione più vecchi ma è tutt’oggi il codice principe nello sviluppo di applicazioni embedded. A differenza dei sistemi di tipo statico che non prevengono operazioni non intenzionali, C supporta programmazione strutturata, ambito variabile lessicale e ricorsività, e comprende anche diverse caratteristiche e componenti dei linguaggi di basso livello (come caratteri, numeri e indirizzi).

Concepito per essere agile e performante, il codice C si avvale di numerose librerie per fronteggiare diverse esigenze (in particolare la libreria standard del C), caricabili sotto forma di file di intestazione o header file con suffisso .h.

Resco ha una vasta esperienza in programmazione C maturata in anni di applicazioni sulle più disparate piattaforme.

C++

C++ è un’estensione del linguaggio C che fornisce funzionalità ad alto livello (come programmazione ad oggetti), permettendo comunque la manipolazione a basso livello (allocazione di memoria, puntatori, ecc.). In altri termini, C++ è un linguaggio di programmazione generico con funzioni di programmazione imperative, orientate agli oggetti e generiche, che come la sua ‘lingua madre’ C integra funzionalità di basso livello per la manipolazione della memoria.

Il codice C++ è stato progettato specificamente per la programmazione del sistema e per i sistemi embedded, caratterizzati da grandi dimensioni e risorse limitate, ma si è dimostrato utile anche in diversi altri contesti (quali applicazioni desktop, server per E-commerce, ricerca Web, SQL ecc., e applicazioni tradizionalmente critiche per le prestazioni come interruttori telefonici o sonde spaziali). C++ è disponibile su differenti piattaforme ed è stato concepito principalmente per essere efficiente e scalabile, offrendo eccellenti risultati in termini di prestazioni, efficienza e flessibilità di utilizzo, soprattutto dove le risorse sono limitate (come in ambito embedded).

Resco ha una approfondita conoscenza di C++ accumulata tramite diverse esperienze sia in ambito desktop e linux embedded che microcontrollori.