Come chiameresti il concetto di CoffeeScript o Sass? [duplicare]

1

C'è questa crescente tendenza con lo sviluppo web di creare nuovi pseudo-linguaggi per estendere le funzionalità di JavaScript, CSS e HTML dato che sono statici e la loro metamorfosi o evoluzione è dolorosamente lenta a causa della varietà dei provider di browser.

Quindi attualmente sto avendo un dilemma di concetto su come classificarli per un libro che sono stato scritto dal mio datore di lavoro in quanto nessuno sembra avere un nome per queste pseudo lingue.

Un piccolo elenco di loro:

  • JavaScript: LiveScript, Metalua, Uberscript, EmberScript.

  • HTML: Razor, Java Scriptlets.

  • CSS: LESS, Sass.

Credo che il concetto di queste pseudo lingue e una lingua o un'estensione di una lingua siano piuttosto diversi.

Prima questi linguaggi non estendono alcuna funzionalità attualmente esistente su HTML o CSS o JavaScript, semplicemente funzionano attorno ad esso.

Inoltre non si "compilano" in una lingua intermedia, sono semplicemente tradotti 1-1 in qualcosa che solo allora può essere compilato.

Come li chiameresti?

    
posta Bryan Arbelo - MaG3Stican 21.08.2014 - 17:04
fonte

4 risposte

2

Di solito la vedo come una lingua traspolata , ma secondo wikipedia, è anche chiamata fonte linguaggio compilato da -to-source o linguaggio trans-compilato. Differiscono principalmente dai compilatori in quanto la lingua di destinazione si trova allo stesso livello di astrazione della lingua di origine, non come un linguaggio di alto livello all'assemblaggio.

    
risposta data 21.08.2014 - 19:24
fonte
6

Ci sono due categorie qui: preprocessori e linguaggi di programmazione. Il primo è un sottogruppo del secondo.

Il fatto che siano compilati, cioè soggetti a un processo che "trasforma il codice sorgente scritto in un linguaggio di programmazione (la lingua di partenza) in un altro linguaggio informatico (la lingua di destinazione) " in un linguaggio di alto livello piuttosto che in Assembler non li rende" specifici ":

  • Alcuni, come C, sono compilati per Assembler,

  • Altri, come C #, sono compilati in IL,

  • Altri, come LiveScript, sono compilati su JavaScript.

risposta data 21.08.2014 - 17:20
fonte
5

Sono lingue. Periodo.

Non esiste una lingua compilata, una lingua interpretata o un linguaggio transpiled. Le lingue non sono compilate, interpretate o transpiled. Loro sono . Compilazione (la trasposizione è solo una compilazione) e l'interpretazione è un tratto del compilatore o dell'interprete (duh!), Non della lingua. Ogni lingua può essere implementata da un compilatore e ogni lingua può essere implementata da un interprete. La maggior parte delle lingue ha implementazioni compilate e interpretate. Ad esempio, ci sono interpreti per C e C ++ e ci sono compilatori per Ruby, Python, PHP, ECMAScript, Perl e Lua. Molte implementazioni di linguaggio moderno utilizzano effettivamente sia l'interpretazione che la compilazione nella stessa implementazione.

Esistono, ad esempio, progetti per l'implementazione di CoffeeScript su VM Rubinius e Parrot VM. E perchè no? CoffeeScript è un bel linguaggio a parte, perché legarlo a ECMAScript?

TypeScript è semanticamente e sintatticamente un superset di ECMAScript, ma ciò non significa che l'unico modo per implementarlo sia come compilatore di ECMAScript. Si potrebbe facilmente scrivere un interprete o un compilatore su codice nativo o un compilatore per bytecode CIL o un compilatore per bytecode JVM.

Dart ha un compilatore per ECMAScript, ma ha anche una VM nativa molto bella e molto veloce.

    
risposta data 21.08.2014 - 21:52
fonte
-2

Lingua derivata o Lingua estensione sembrano descrittori comuni e ben adattati. Dalla home page di Ember.js :

EmberScript is a CoffeeScript derived language

e dalla home page SASS :

Sass is the most mature, stable, and powerful professional grade CSS extension language in the world.

    
risposta data 21.08.2014 - 17:24
fonte

Leggi altre domande sui tag