2009-07-04 14 views
8

Quale linguaggio di programmazione ha la quantità minima di sintassi? Come posso calcolare quanti sintassi ha un linguaggio di programmazione?Quale linguaggio di programmazione ha la quantità minima di sintassi?

Grazie.

+2

@Bubba, definire la sintassi? –

+2

Per calcolare la sintassi "molti" di un linguaggio di programmazione, è possibile esaminare la grammatica di una lingua. Più grammatica, più sintassi ha. –

+0

Inoltre, perché lo chiedi? –

risposta

9

Le lingue derivate da LISP, di derivazione secondaria e di derivazione Smalltalk (IO?) Hanno probabilmente la sintassi minima, in questo ordine.

E non puoi misurarlo, perché non è tecnico, è sociale.

+0

Forth ha una sintassi molto piccola, anche se le varianti si basano su di essa. Postscript (e per estensione PDF) è un modello simile a Forth, ma con molta più sintassi. –

+0

Bene, la sintassi è ciò che accumuli nel tempo. – alamar

+3

È sicuramente possibile misurare la sintassi. Il problema è che ci sono più misurazioni in competizione. La decisione su cui contare le misure è la parte che è sociale. –

13

Il numero Brainfuck conta?

Oh, aspetta ... intendevi una lingua useful.

+0

hahah, stavo per pubblicarlo. –

+3

Penso Ook! ha meno sintassi. =) http://www.dangermouse.net/esoteric/ook.html – wai

+0

Entrambi Ook! e Brainfuck hanno 8 produzioni, quindi hanno la stessa quantità di sintassi. Ook! usa produzioni multi-token, quindi ha probabilmente una sintassi più complicata. –

4

Un Ciao Mondo in Brainfuck

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>. 
8

linguaggi di programmazione che sono implementati molto vicino ad alcune semplici computational model possono avere molto poco sintassi.

+3

L'ultima volta che ho controllato, il mio computer Intel non aveva un nastro interno. x86 è basato sul registro. –

+2

Il registro IP è l'HEAD e la memoria è il TAPE. –

+0

La macchina di Turing ha pochissime istruzioni per operare sul nastro, che è un singolo flusso di dati e istruzioni con accesso O (N). x86 è un dispositivo CISC e la maggior parte delle operazioni di lettura/scrittura funziona sulla memoria ad accesso casuale, non sul flusso di istruzioni. Se qualcosa è basato su Von-Neumann con separazione di istruzioni e dati - le varianti successive hanno il supporto per impedire l'esecuzione della memoria di lettura/scrittura. –

0

Dipende piuttosto dalla definizione della sintassi. Ad esempio, Subtext nessuna sintassi testuale, ma un bel po 'di sintassi visiva.

0

Non sono sicuro della "minima" quantità di sintassi, ma se intendi succinto/leggero, indubbiamente lo K language deve essere un forte concorrente.

5

Se immagino correttamente il tuo scopo, Python non ha più o meno "sintassi" di qualsiasi altra lingua, ma ha meno "strani simboli divertenti" di qualsiasi altra lingua che conosco. E utilizza la sintassi inglese semplificata, per lo più semplice.

Se stai cercando un linguaggio serio in cui sia facile da leggere e scrivere, ma essere comunque proattivo, vai su Python.

O visuale di base, che sta diventando sempre più gonfio nel corso degli anni, e ha problemi di incompatibilità di sintassi con le versioni precedenti - quindi non posso raccomandare VB.

0

La maggior parte delle lingue moderne ha relativamente poche parole chiave e operatori. Di solito hanno un modo di indicare un blocco logico. Il problema è che un minor numero di parole chiave e operatori di solito non significa più facile leggere e capire il codice - basta guardare BrainFuck - 4 operatori, senza parole chiave e abbastanza inutile.

Più lingue "naturali" sono più prolisse e hanno una grande sintassi, ma possono essere più semplici per un principiante.

Java, C#, Javascript e carica più lingue condividono la stessa sintassi di base. Hanno tutti le loro parole chiave e operatori aggiuntivi, ma se hai intenzione di imparare una sintassi di base è da dove cominciare - se puoi scrivere il codice in uno puoi leggere gli altri.

0

Per quanto posso dire, ho provato:

  • dell'Assemblea;
  • C/C++;
  • Java;
  • C#;
  • PHP;
  • Java;
  • Python;
  • Rubino;
  • Bash;
  • Perl.

Eccetto bash, wich non so nemmeno cosa su quando si tratta di programmazione più che scripting, Perl ha la sintassi più breve, ma è una delle più lente per leggere.

Assembly, C/C++ e Java sono in realtà Verbose. C# e PHP meno, ma ancora. E tu sei bloccato con. Net o con una lingua senza convenzione di denominazione.

Il miglior equilibrio tra essere concisi, potenti e leggibili sono Ruby e Python.

Sono anch'io un amante di Python e sono abituato alla sintassi, quindi cercherò di farlo. Non mi piace il modo in cui Ruby blocca i blocchi usando le parole chiave.

0

L'analisi di Jot può essere eseguita utilizzando solo 5 caratteri: la regex [01]* è una descrizione completa di tutti e solo i programmi legali.

0

Suppongo che la complessità relativa di un linguaggio sia una funzione del numero di elementi che un programmatore deve conoscere o ricordare per ottenere correttamente un modulo senza errori. Ci sono altre cose da elencare oltre alle parole chiave, come simboli speciali. Sarebbe utile anche elencare quei simboli e delimitatori. Se un simbolo viene utilizzato per due cose diverse, verrà conteggiato due volte. Ad esempio, in Smalltalk un punto (.) Viene utilizzato per indirizzare una classe esplicitamente attraverso il suo spazio dei nomi e per terminare un'istruzione.

lingua Parole 68000 Assembler> 106 8088 Assembler 106 Ada 84 Java 1.1 64 Rubino 56 PHP 52 74 tra cui speciali $ variabili C++ 48 Rubino 38 C 28 Python 28 Smalltalk 6

Problemi correlati