Quali sono le differenze tra i linguaggi di programmazione? [chiuso]

3

C'era una volta, ho sentito qualcuno

the only difference between programming languages is the syntax

Volevo negarlo - per dire che ci sono altri aspetti fondamentali che impostano veramente un linguaggio diverso dagli altri oltre alla sintassi.

Ma non potevo ... Quindi, puoi?

Ogni volta che cerco su Google qualcosa come "differenze tra linguaggi di programmazione", i risultati tendono ad essere dibattiti tra due linguaggi specifici (vorrei qualcosa di più generale) - tuttavia, alcuni degli aspetti che le persone sembravano discutere maggiormente sono stati:

  • Object Oriented
  • Sovraccarico metodo / operatore (in realtà vedo questo piuttosto correlato alla sintassi)
  • Garbage-Collection (Anche se sembra una buona differenza, per qualche motivo non sembra "fondamentale")

Quali aspetti importanti oltre alla sintassi ti vengono in mente?

    
posta Omega 01.11.2012 - 07:05
fonte

3 risposte

4

Gli informatici hanno a lungo riflettuto sui modi per descrivere e confrontare i linguaggi di programmazione. Potresti essere interessato al campo della semantica formale.

Una descrizione di John Longley dell'Università di Edimburgo:

A formal semantics for a programming language is a mathematically precise description of the intended meaning of each construct in the language. In contrast to a formal syntax for a language, which tells us which sequences of symbols are correctly formed programs, a formal semantics tells us what programs will actually do when we run them. The ideas of semantics are of importance for language designers, compiler writers, and programmers; they also provide a basis for mathematical proofs of the correctness of programs.

Esistono diversi approcci alla definizione di semantica formale. I più conosciuti sono:

  1. Semantica denotazionale ;
  2. Semantica operativa ;
  3. semantica assiomatica .

Ti consiglio il libro "The Formal Semantics of Programming Languages" di Glynn Winskel. È un po 'obsoleto, ma comunque pertinente e adatto ai principianti.

    
risposta data 01.11.2012 - 09:29
fonte
1

Ci sono molte cose che differenziano i linguaggi di programmazione. Tuttavia, qualsiasi risultato può essere ottenuto utilizzando qualsiasi linguaggio di programmazione generico. La differenza, tuttavia, è nell'efficienza, sia di runtime (più dipendente dal compilatore) che di tempo di sviluppo.

Ad esempio, programmare applicazioni distribuite in Erlang è molto più facile che in Assembly o anche in C.

La mutabilità è un altro criterio che separa le lingue. Si tratta essenzialmente di creare "pure funzioni", cioè funzioni che restituiscono sempre lo stesso valore per un determinato input, proprio come le funzioni matematiche. Questo appartiene a (e in un modo definisce) il paradigma programmazione funzionale .

L'elenco potrebbe continuare all'infinito. Chiunque dica che l'unica differenza tra i linguaggi di programmazione X è la sintassi, sta dicendo che solo perché probabilmente l'unica cosa che sanno delle lingue è la loro sintassi.

Alcuni linguaggi di programmazione differiscono solo per la sintassi (ad esempio, Javascript e Coffeescript); ma più spesso, diversi linguaggi di programmazione suggeriscono modi diversi di pensare a un problema. Di solito è la principale differenza tra loro.

    
risposta data 01.11.2012 - 07:29
fonte
1

Se hai bisogno solo di un contro-argomento per qualche tipo di manager, digli che la differenza più importante tra i linguaggi di programmazione (oltre alle differenze sintattiche) sono i mezzi di astrazione forniti da ciascuna lingua.

Questa non è sicuramente l'intera verità, ma è abbastanza facile da capire per molte persone anche quando non sono programmatori formalmente istruiti.

    
risposta data 01.11.2012 - 09:44
fonte

Leggi altre domande sui tag