Perché i linguaggi basati sugli eventi non sono adatti ai sistemi embedded e cosa rende una lingua valida per i sistemi embedded? [chiuso]

-5

Sto facendo un saggio su questo per il college e non riesco davvero a trovare fonti.

Finora ho trovato questi:

link

link

Perché C domina nel mercato dei software embedded ?

Sono inteso a valutare l'idoneità della programmazione guidata dagli eventi in applicazioni non grafiche. Tutto quello che so è che i linguaggi basati sugli eventi sono dannosi per questo perché sono più pesanti, più lenti e la porzione GUI di essi è sprecata.

Voglio essere in grado di spiegare come altri linguaggi, come C e JavaScript, non hanno questi problemi e anche quali altre caratteristiche li rendono più adatti ai sistemi embedded.

Modifica: Quindi risulta che tutto ciò che so è sbagliato. Mi piacerebbe sapere che cosa rende VB.NET pessimo per la programmazione di sistemi embedded (se è cattivo), e che tipo di criteri ci sono per una lingua per essere bravi a programmare sistemi embedded.

    
posta Tom Shaw 20.03.2017 - 17:05
fonte

2 risposte

0

Ti stavo aspettando per dare un esempio di un "linguaggio guidato dagli eventi" per vedere se capisco cosa stai chiedendo. Ma ho deciso che probabilmente hai dei malintesi. Questa prima frase della tua domanda ha senso: "Sono inteso a valutare l'idoneità della programmazione guidata dagli eventi in applicazioni non grafiche". Ma poi tutto quello che hai scritto dopo "Tutto quello che so ..." è confuso e probabilmente sbagliato.

La programmazione guidata dagli eventi è uno stile di progettazione. Non so cosa intendi per linguaggio guidato dagli eventi e sono scettico sul fatto che sia una cosa.

La programmazione guidata da eventi è molto adatta per i sistemi embedded perché molti sistemi embedded sono eventi guidati dalla natura. Un evento può essere un pulsante, il rilevamento del sensore, il pacchetto di rete ricevuto, la scadenza del timer, ecc. Pensa a un ascensore, una stampante o un router wireless.

Miro Samek lo spiega bene nelle prime due pagine del capitolo Introduzione di Statistical UML Statecharts in C / C ++ , che è sottotitolato "Programmazione basata su eventi per sistemi embedded". (Puoi leggere l'introduzione dall'elenco di Amazon se fai clic sul link "Guarda dentro".)

La programmazione guidata dagli eventi è comunemente usata per le applicazioni GUI perché è molto facile farlo con strumenti come Microsoft Visual Studio. Ogni sviluppatore di applicazioni desktop di inizio inizia con la programmazione basata su eventi e ha accesso a una moltitudine di esempi.

Al contrario, uno sviluppatore di sistemi embedded all'inizio scrive tipicamente un super-loop principale per lampeggiare un LED. Gli strumenti di sviluppo integrati non forniscono il framework basato sugli eventi come fa Visual Studio. Ed esempi di programmi guidati da eventi sono rari. Questo potrebbe spiegare perché la programmazione basata sugli eventi è meno comune nei sistemi embedded. Ma sarebbe sbagliato dire che la programmazione basata sugli eventi non è adatta ai sistemi embedded.

Modifica: hai cambiato la domanda. Non capisco perché tu abbia originariamente scritto "event driven" quando stavi chiedendo di VB.NET.

VB.NET non è adatto per i sistemi embedded tipici, ma non credo che nessuna delle ragioni sia correlata al concetto di "event driven". Ecco alcune idee che puoi approfondire. I programmi scritti in linguaggi .NET vengono eseguiti su computer in cui è stato installato il framework .NET (CLR e FCL). Il framework .NET non esiste per microcontrollori piccoli utilizzati per molti sistemi embedded. I sistemi integrati spesso hanno risorse limitate in termini di memoria e potenza della CPU. I framework .NET e .NET sono troppo affamati di risorse per questi sistemi a risorse limitate. I sistemi integrati spesso hanno requisiti in tempo reale. Funzionalità .NET come la garbage collection lo rendono non deterministico o difficile da garantire che le scadenze delle scadenze siano sempre rispettate.

    
risposta data 21.03.2017 - 14:35
fonte
-2

IN GENERALE, Qualunque sia la lingua più vicina al codice macchina (011010110 ecc.) è più veloce.

Anche l'ulteriore ottimizzazione del compilatore può fare enorme differenza.

Il codice C viene compilato direttamente sul codice macchina, quindi più veloce per qualsiasi attività, sia che venga utilizzato nei sistemi embedded.

Mentre il codice Java è compilato in bytecode che JVM comprende e lo converte ulteriormente in codice macchina

    
risposta data 21.03.2017 - 10:24
fonte

Leggi altre domande sui tag