Lingue di alto livello contro lingue di basso livello (infografica) - eduCBA

Sommario:

Anonim

Fonte immagine: pixabay.com

Ho scritto questo blog considerando che le persone che leggeranno questo sono principianti assoluti. Le persone che hanno un background come, intendo, non esattamente un background tecnologico troverebbero davvero difficile iniziare a imparare la programmazione quando non c'è nessuno che li guidi. Quindi ho scritto questo blog come una cortesia per loro. Quindi, parlando di lingue, che cosa sono esattamente la lingua di alto livello e la lingua di basso livello? Perché lo chiamano così? E quanto differiscono l'una dall'altra?

Inutile dire che li ho trattati tutti in questo blog.

Lingue di alto livello vs infografiche di basso livello

Che cosa sono le lingue di alto livello?

Devi essere cosa Cos'è il linguaggio di alto livello? ma dimmi che sono più facili da capire ed è facile da usare. Con l'aiuto di questi linguaggi è possibile scrivere applicazioni portatili su varie piattaforme (come Linux o Windows) ed è indipendente da qualsiasi architettura (come ARM non Intel o la famigerata Intel). Esempio di linguaggio di alto livello, scrivendo un programma in Python che per impostazione predefinita funziona in qualsiasi sistema Linux, quindi semplicemente compilandolo in qualsiasi exe usando py2exe e quindi eseguendolo su Windows.

Esempi simili sono Python, C, Fortran o Pascal. Tali lingue sono considerate come lingue di alto livello perché sono più vicine alle lingue umane e molto più lontane dalle lingue automatiche. Quando dico il linguaggio umano, non intendo ciò di cui parliamo nella nostra vita quotidiana. Significa che il codice è qualcosa che possiamo capire conoscendo alcune basi della programmazione. Il codice scritto è quasi leggibile dagli umani, qualcosa che può essere letto e pronunciato.

Di seguito sono riportati alcuni esempi di linguaggio macchina per stampare un semplice programma sullo schermo in Fortran e C.

A Fortran:

program NewProgramF90

write(*, *) "This is a printed program"

end program NewProgramF90

Ora puoi compilarlo usando:

gfortran newprogram.f90 -o newprogram -f90-gcc

E poi semplicemente eseguilo.

Programma simile in C:

#include

main()

(

printf("This is a printed program");

)

Per i principianti puri, questo è il più semplice che può ottenere.

Tuttavia, poiché stiamo parlando di computer, per un computer questo è difficile da capire. Quindi, al fine di renderlo sensato per i computer ed eseguire un programma creato con un linguaggio di alto livello, deve essere compilato in linguaggio macchina.

Fonte immagine: github.com

Ed è qui che entra in gioco un linguaggio di basso livello. A differenza di prima, dove c'erano solo pochi linguaggi di alto livello, oggi ci sono n un numero di linguaggi di alto livello come C, Cobol, FORTRAN, Pascal, Java, Perl, Python, PHP, Ruby, C ++, BASIC e Visual Basic .

Cosa sono le lingue di basso livello?

Lingue di basso livello quelle lingue che sono estremamente vicine al linguaggio automatico. Sono anche conosciuti come lingue dell'Assemblea. Le lingue più vicine dopo il linguaggio Assembly to Machine sono C e C ++. Alcune persone chiamano anche C e C ++ come linguaggi di basso livello. Il codice macchina è noto come basso livello perché, diversamente dai linguaggi di programmazione di alto livello, non ha bisogno di nient'altro come compilatori o altro. Funziona direttamente sul processore e sono estremamente specifici per l'architettura.

Le lingue di basso livello sono più appropriate per lo sviluppo di nuovi sistemi operativi o la scrittura di codici firmware per i microcontroller. Possono fare qualsiasi cosa con un po 'di duro lavoro (in realtà un sacco di duro lavoro per essere specifici), ma ovviamente non vorrai scrivere qualche applicazione importante al suo interno. Simile è il caso di C (attualmente chiamato Cee). C è in realtà un linguaggio molto vasto per cominciare. Ti permette di registrarti direttamente e dare accesso immediato a varie posizioni di memoria.

Allo stesso tempo, ha anche molti costrutti, che consentono all'hardware di caricare l'astrazione. Francamente, C e C ++ rappresentano due varietà di lingue, dal momento che la maggior parte delle lingue ha preso le sue librerie da esse. In pratica, sia il C che il C ++ sono di basso livello, come ho detto in precedenza, perché scrivere applicazioni a livello aziendale è piuttosto difficile. Ma teoricamente, entrambi sono in realtà linguaggi di alto livello.

Corsi consigliati

  • Corso di sicurezza IT professionale
  • Pacchetto di formazione Ruby on Rails
  • Corso CSS professionale
  • Corso online HTML5 e CSS3

Caratteristiche delle lingue di alto e basso livello:

Ora, il fatto è che ogni tanto mi è stato chiesto in varie interviste e in altri posti che mi piacciono la programmazione di livello più basso o alto. Mi sembra che non esista il meglio. La risposta è che entrambi hanno la loro specialità e non puoi sostituirne uno per l'altro. Quindi, in realtà mi piacciono entrambi.

La programmazione a basso livello è impegnativa e richiede molta esperienza e conoscenza. Le caratteristiche dei linguaggi di alto livello sono le aree in cui si svolgono tutte le cose creative, ad esempio le applicazioni che le persone usano nella loro vita quotidiana e possono essere messe a punto in modo molto più semplice rispetto a quelle di basso livello. E qui, puoi lavorare con tecnologie estremamente nuove poiché molte di queste lingue vengono continuamente aggiornate grazie al supporto della comunità.

Se lo metti in dubbio a qualsiasi programmatore di linguaggio di alto livello su ciò che gli piace, la risposta che riceverai sarebbe lontana da ciò di cui hai bisogno. Non ti diranno quale è meglio.

Probabilmente diranno che sono più appassionati di una lingua specifica di alto livello e non di tutti. Non so che questo accada. Gli esempi più famosi sono Python e Ruby, e se mostri loro alcuni programmi scritti in assembly, probabilmente andrà in hasta-la-vista.

Fonte immagine: mathworks.com

La cosa davvero fantastica di molte lingue di alto livello è che rientrano nella categoria ibrida. Ad esempio, python è estremamente orientato agli oggetti, ma allo stesso tempo supporta anche chiusure e funzioni di prima classe. Sebbene non sia potente come Scala, ma ha la capacità di rappresentare più o meno cose come quella di un linguaggio puramente.

Le lingue di alto livello sono generalmente lente rispetto alle lingue di basso livello. Questo perché i linguaggi di alto livello hanno molte astrazioni e strati di codice prima che raggiungano l'hardware stesso, mentre poiché il codice macchina è più vicino, è effettivamente veloce elaborare e restituire l'output. Molto probabilmente un pezzo di codice in Python viene tradotto in migliaia di righe di parole automatiche.

Naturalmente, linguaggi di alto livello sono alla pari dove non sono necessarie prestazioni grezze, poiché non è possibile sviluppare applicazioni stabili e di grandi dimensioni a basso livello come ad alto livello. Questa è una cosa che vale la pena ricordare.

Programmazione C - La confusione di livello basso / alto

Sebbene C abbia molte caratteristiche simili a quelle del linguaggio Pascal, a volte è ancora considerato come un linguaggio di basso livello, dato che supporta operazioni di bit, puntatori e accesso diretto alla memoria. C in realtà è un linguaggio di alto livello con le funzionalità inclusive di basso livello. Questo è il motivo principale per cui i programmatori dipendono da C su qualsiasi cosa per le sue qualità imbattibili.

Può sembrare strano che C, sebbene trattato come un linguaggio di basso livello, sia estremamente portatile. A livello di fanatici, C è in realtà esteso per utilizzare l'hardware ai limiti estremi possibili.

Il linguaggio assembly, d'altra parte, è difficilmente trasportabile. Tuttavia, cercare di ottenere la portabilità è un grosso problema in caso di basso livello, specialmente nel caso di Java, che gira su una JVM, cioè una macchina virtuale. C o Assembly in esecuzione in una macchina virtuale non avranno mai puro accesso all'hardware.

Per essere più precisi, un linguaggio diventa di basso livello se è specificamente strutturato per essere eseguito direttamente sull'hardware. Le lingue di basso livello hanno una sintassi molto minore, a differenza delle lingue di alto livello che hanno un sacco di codici.

Le lingue di basso livello che consentono l'accesso completo dell'hardware sarebbero in realtà una cattiva scelta per scrivere progetti.

Quando utilizzare a basso livello?

Un codice macchina è simile a questo, che funziona in modo estremamente rapido poiché è molto vicino all'hardware.

8B542408 83FA0077 06B80000 0000C383

FA027706 B8010000 00C353BB 01000000

B9010000 008D0419 83FA0376 078BD98B

C84AEBF1 5BC3

Qui sopra, è una funzione scritta per un'architettura a 32 bit, ovvero codice macchina x86 per calcolare il numero di Fibonacci.

Scrivere il codice della macchina è indiscutibilmente abbastanza irritante perché richiede di controllare i codici numerici di tanto in tanto per ogni altra istruzione che viene eseguita. Chi diavolo ha tempo per quello? E questa è la ragione per cui è nata la programmazione di basso livello.

Ma se chiedi della programmazione di basso livello ai programmatori di alto livello, la risposta che otterrai sarebbe questa:

Fonte immagine: pixabay.com

Conclusione

I linguaggi di basso livello hanno un ulteriore vantaggio di perdere il controllo della CPU, ma i loro codici sono estremamente difficili da capire e da eseguire per il debug da altri programmatori. Ogni altra famiglia di architettura ha il proprio set di linguaggio assembly, il che significa che il codice scritto per uno è impossibile da eseguire sull'altro. Il che in breve significa che il codice non è portatile.

Vantaggi del linguaggio di alto livello è che le lingue di alto livello sono estremamente portatili d'altra parte e sono principalmente utilizzate per scrivere software che può essere eseguito su più piattaforme e architetture. Nessuno dei due può sostituirsi perché sono due facce della stessa medaglia.

Articoli consigliati

Ecco alcuni articoli che ti aiuteranno a ottenere maggiori dettagli sulle lingue di alto livello rispetto alle lingue di basso livello, quindi passa attraverso il link.

  1. Suggerimenti più importanti Linguaggio di programmazione Haskell
  2. HTML5 e Flash: trova le differenze
  3. Text Mining vs Natural Language Processing - I 5 migliori confronti
  4. 12 Passaggi migliori per installare il linguaggio di programmazione R (Guida rapida)
  5. 8 Il miglior linguaggio di programmazione per app mobili che dovresti conoscere
  6. Cose importanti da sapere sul linguaggio di programmazione Haskell