Domanda

Leggendo su Wikipedia:

"I termini di alto livello e di basso livello sono intrinsecamente relativi. Alcuni decenni fa, la lingua C e lingue simili, sono state spesso considerate" di alto livello ", in quanto supportavano concetti come la valutazione delle espressioni, le funzioni ricorsive parametri e le funzioni ricorsive e le funzioni ricorsive parametrizzate e Tipi di dati e strutture, mentre il linguaggio dell'assembly è stato considerato "basso livello". Molti programmatori oggi potrebbero riferirsi a C come basso livello, in quanto manca di un ampio sistema di runtime (nessuna raccolta di immondizia ecc.), Fondamentalmente supporta solo operazioni scalari, e fornisce un indirizzamento della memoria diretta. Si fonde quindi prontamente con il linguaggio dell'assemblaggio e il livello della macchina di CPU e microcontrollori. "

http://en.wikipedia.org/wiki/high_level_language

Cosa significa esattamente questo? Quali operazioni forniscono altri linguaggi di programmazione quale c no?

È stato utile?

Soluzione

Dato il contesto e l'argomento dell'articolo, ciò a cui si riferisce l'articolo è il termine "scalare" in quanto è definito nella lingua C stessa. In lingua C. aritmetica tipi e Pointer I tipi insieme sono chiamati scalare Tipi (vedi 6.2.5/21). Nella lingua quotidiana vediamo spesso questi tipi indicati come di base tipi o incorporato tipi (mentre il termine formale corretto è, di nuovo, scalare). Il punto è che scalare I tipi devono essere i tipi che sono immediatamente (o quasi immediatamente) supportati dall'hardware. La maggior parte delle operazioni non concettuali in C operano solo su tipi scalari e tipi scalari.

Se dai un'occhiata alla storia della lingua C, vedrai che le prime versioni di C erano così restrittiva scalare, che non è stato nemmeno possibile assegnare un oggetto struct a un altro oggetto struct (o passarlo a una funzione/restituzione da una funzione per valore). L'abilità fa la copia della struttura nel linguaggio principale è stata aggiunta a C in seguito. E fino ad oggi rimane essenzialmente l'unica operazione non scalare in tutto il linguaggio principale.

C ++, d'altra parte, così come altre lingue di livello superiore, supporta le operazioni su definito dall'utente tipi, che non sono per definizione no scalare, o su altri tipi che non hanno alcun supporto immediato dall'hardware.

Ps no, il punto in cui l'articolo sta cercando di fare non ha nulla a che fare con vettore operazioni, al contrario di scalare operazioni. Il supporto per le operazioni vettoriali è, ovviamente, completamente ortogonale al livello della lingua. Puoi avere operazioni vettoriali in lingue di basso livello e in lingue di alto livello. Il termine scalare è usato in un senso che ho descritto sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top