Qual è il linguaggio di programmazione per computer più avanzato al momento?

Risposta originale: Qual è il linguaggio di programmazione più avanzato?

Diversi linguaggi di programmazione sono avanzati in modi diversi. Non sono d'accordo con la risposta di Marius Catalin che si può giudicare quanto sia avanzato un linguaggio solo dal suo sistema di tipi, anche se questo è un modo di misurare. Se questa è la misura, come ha detto, i linguaggi della famiglia ML come Haskell e Idris hanno probabilmente i sistemi di tipi più avanzati.

Se "avanzato" significa, "ha un sacco di caratteristiche fantasiose", C++, Scala e forse C# hanno MOLTE caratteristiche, ma sono sicuro che sto dimenticando qualche altro linguaggio di fantasia.

In termini di tecnologia del compilatore, LLVM sta fornendo una base di compilatore molto interessante che sembra colpire tutti i giusti punti di astrazione senza oscurare affatto ciò che la macchina sta facendo. Sospetto che LLVM IR sarà un importante concorrente del C come obiettivo di compilazione in futuro, poiché è potenzialmente più potente in quel campo.

Alcuni linguaggi implementati sopra LLVM hanno anche compilatori molto interessanti che sono in qualche modo ispirati da compilatori ML-ish. Rust usa l'analisi statica non solo per prendersi cura dei tipi in modo sicuro, ma anche per tenere traccia dell'allocazione della memoria e fare la concretezza in modo sicuro. Julia sta usando l'inferenza dei tipi nel compilatore per produrre codice macchina iper-efficiente in fase di esecuzione da un linguaggio dinamicamente tipizzato.

In qualche modo, Lisp è il linguaggio più avanzato perché è il linguaggio più semplice. Non ha essenzialmente un parser. Il programmatore scrive solo alberi di sintassi letterali, e può modificare quegli alberi di sintassi programmaticamente esattamente nello stesso modo in cui modificherebbe qualsiasi altro dato in una lista. A causa di questo, la semantica Lisp può essere estesa in modi arbitrari per aggiungere le caratteristiche di qualsiasi altro linguaggio di programmazione con facilità. È il linguaggio di programmazione programmabile.