Domanda

Sto per avviare una distro linux LFS basata solo per un progetto hobby. Ho intenzione di fare alcuni compiti molto non standard, e la maggior parte si tratterà di cambiare quasi tutti gli script nella distribuzione. (Script di init principalmente, ma anche Scriverò un semplice insieme di script Package Manager.) Dal momento che sarò andando a questo punto fuori la norma, e dal momento che non sono mai stato un fan di linguaggi dinamici tipizzato (perl, python, bash e il resto sono buoni, ma non solo il mio forte), mi chiedevo se qualcuno sapesse di un linguaggio interpretato che in realtà ha dichiarato variabili.

È stato utile?

Soluzione

Cerca in al comando "comporre" nella shell preferito. bash e ksh93 entrambi possono far rispettare interi e stringhe, utilizzare i riferimenti (variabili variabile), ecc Con ksh93, si può anche fare matematica a virgola mobile e utilizzare gli oggetti con gli attributi. tipizzazione statica in realtà non si acquista qualcosa di utile negli script di init e simili. Si sta principalmente andando ad essere la lettura dei file e l'esecuzione di comandi di sistema - che è ciò che il guscio è veramente bravo a. Prendete un po 'di tempo con l'O'Reilly "imparare la Korn Shell" libro prima di decidere che tutti quegli altri Unix sono stupidamente progettati ...;)

Altri suggerimenti

In genere i linguaggi staticamente tipizzati sono compilati lingue. Credo che la ragione è, che l'analisi statica di tipi è piuttosto costoso e bisogna avere uno sguardo in profondità a tutto il codice che stai elaborazione. Dopo aver fatto che ci si sente come uno spreco di non scrivere tutte queste informazioni in un file, in modo che non c'è bisogno di farlo di nuovo la prossima volta. Così si finisce in fretta con un linguaggio compilato.

D'altra parte, a trasformare un linguaggio compilato in un "non-compilato" uno è piuttosto facile. È solo che non memorizzano i risultati della compilation ovunque ma li esegue direttamente. Un compilatore So che fornisce un tale involucro è GHC, lo standard Haskell compilatore. È possibile aggiungere #!/usr/bin/runhaskell ai file di origine e quindi eseguire direttamente. E dal momento che si sta pensando di essere lontano la norma, Haskell sembra una misura perfetta;). Ma aspettare qualche tempo di avvio piuttosto grande per gli script, in quanto tutte le analisi "tempo di compilazione" e l'ottimizzazione non è libero.

Haskell non è fatta per lo scripting di shell ed è un linguaggio funzionale, quindi se non avete mai visto prima, che potrebbe richiedere un certo tempo per abituarsi. Ma ha overhead molto poco sintattica e la forza dei linguaggi funzionali è l'astrazione, quindi non vedo perché non si potrebbe creare una libreria che si prende gioco di shell scripting. C'è anche qualche Haskell sperimentale guscio , ma esso sembra essere più un proof-of-concept che una vera soluzione.

In generale direi che il sovraccarico di tutte le analisi di tipo è significativo, ma vorrei suggerire di scegliere il vostro preferito staticamente tipizzato linguaggio compilato e cercare un wrapper come runhaskell per eseguire script scritti in esso.

rapida di Google. F3, lo script JavaFX, Linden Scripting Language (scripting per Second Life), a differenza del commento alla prima risposta F # può essere utilizzato come un linguaggio di scripting http://blogs.msdn.com/chrsmith/archive/2008/09/12/scripting-in-f.aspx

Felix, Tuga, CFGScript, Talco, AngelScript, e indovinando c'è più di quella ricerca rapida.

Douglas

F # fornisce una combinazione di "sicurezza di tipo , succinctness, prestazioni, expresivity e scripting".

Groovy. Per impostazione predefinita è dinamica, anatra-digitato. Ma supporta anche la tipizzazione statica.

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