Qualcuno può puntare a un linguaggio di programmazione che abbia una sintassi simile a Python, ma sin dall'inizio è stato progettato per generare codice nativo? Sono a conoscenza solo di Boo, ma usa .net, non la generazione di codice nativo. Bene, se nient'altro che linguaggi simili a pitoni che generano bytecode .net/java vanno bene.Linguaggi di programmazione con sintassi simile a Python ma generazione di codice nativa
risposta
Cython potrebbe fare - il codice C che genera è per le estensioni Python, ma il tutto può essere impacchettato e si eseguirà codice nativo in tutto (dopo l''importazione' ;-).
Se si è soddisfatti di qualcosa che compila il bytecode Java, è possibile dare un'occhiata a Jython. Citando dal loro FAQ:
JPython è un'implementazione del linguaggio di programmazione Python progettato per essere eseguito sulla piattaforma Java (tm). Consiste in un compilatore per compilare codice sorgente Python in codice bytecode Java che può essere eseguito direttamente su una JVM, un set di librerie di supporto utilizzate dai bytecode Java compilati e supporto extra per rendere banale l'uso di pacchetti Java da JPython .
Non l'ho ancora utilizzato, ma lo sto considerando su alcuni progetti in cui devo integrarmi con un codice base Java esistente.
HTH
È inoltre possibile studiare IronPython - un inplementation pitone sul framework .NET
* sigh * .NET NON è un codice nativo. Almeno, non di default, comunque. È una macchina virtuale, come Java. –
devo ammettere che non ho ben capito la tua domanda, per due motivi:
Stai chiedendo una lingua con la generazione del codice nativo, ma la generazione del codice nativo non ha nulla a che fare con il linguaggio, è un tratto dell'implementazione. Ogni lingua può avere un'implementazione con la generazione di codice nativo. Diverse implementazioni Python hanno la generazione di codice nativo. Esistono compilatori C che compilano in bytecode JVM, bytecode CIL o anche codice sorgente ECMAScript. Esistono anche interpreti C . Esistono anche compilatori che compilano codice sorgente Java o codice byte JVM in codice nativo.
Perché ti interessa la sintassi? È probabilmente il fattore meno importante nella scelta di un linguaggio di programmazione.
In ogni caso, Nimrod è un linguaggio di programmazione che ha un'implementazione che supporta la generazione di codice nativo (o più precisamente un'implementazione che supporta la generazione di codice C sorgente) e la cui sintassi è un ibrido tra lo stile Wirthian (tramite gli sguardi di le influenze più importanti sono Oberon e Delphi) e Python.
Tuttavia, il fatto che abbia una sintassi Pythonic non ti aiuterà affatto se non ti piace il design in stile europeo o lo stile Wirthiano OOP.
Non proprio. Un linguaggio di programmazione nel suo insieme è: la sintassi del linguaggio + le librerie principali + l'ambiente in cui viene eseguito. Pensateci un linguaggio di programmazione OO la cui root non è 'java.lang.Object' ma' System.Object' non è Java ma C#: P – OscarRyz
Sono d'accordo. Un linguaggio di programmazione con grandi prestazioni, ma la sintassi noiosa è come un coltello incredibilmente nitido ma con gli aghi sul manico. Inoltre, non esiste una cosa come "design in stile europeo". – paniq
L'OP desidera qualcosa che "fin dall'inizio sia stato progettato per generare codice nativo". Un sacco di lingue, ad esempio Python, rendono la generazione del codice nativo molto difficile a causa di alcune caratteristiche dinamiche. Mentre molti altri sono solo leggermente diversi, ma possono essere facilmente compilati in codice nativo (ad esempio Nimrod). Quindi non sono d'accordo con il tuo primo punto. – Ponkadoodle
PyPy è un progetto per reimplementare Python in Python.Uno degli obiettivi è consentire l'uso di più back-end, tra cui C. Quindi puoi prendere un programma Python puro, convertirlo in C e compilarlo in codice nativo. È ancora un lavoro in corso, quindi probabilmente non adatto al codice di produzione.
Genie, che fa parte del progetto GNOME: http://live.gnome.org/Genie
Penso che sia esattamente quello che stai cercando.
shedskin compila Python a C++
Da shedskin pagina del progetto
Shed pelle è un compilatore sperimentale, in grado di tradurre puro, ma implicitamente staticamente tipizzati Python programmi in ottimizzato C++. Può generare programmi standalone o moduli di espansione che possono essere importati e utilizzati in programmi Python più grandi.
Partenza Cobra
E 'fortemente influenzato da Python, C#, Eiffel, Objective-C e altri linguaggi di programmazione. Supporta la digitazione statica e dinamica. Ha supporto di prima classe per test e contratti unitari. Cobra offre sia sviluppo rapido che prestazioni nella stessa lingua.
Cobra sembra decente. Mi piacciono particolarmente i numeri reali CORRETTO per impostazione predefinita: sebbene sia ragionevolmente sicuro, il "punto di virgola mobile" "lossy" dovrebbe essere sempre un'ottimizzazione usata quando è sicura, mai l'impostazione predefinita. Tuttavia, Cobra NON genera codice nativo, purtroppo. Funziona su .NET, che è una macchina virtuale. Questo può fare una GRANDE differenza, per esempio quando scrivi un codice che elabora gigabyte di dati ogni elemento di cui ha un sovraccarico in una VM. Nimrod è il modo per andare qui, con D come alternativa ragionevole. –
Cobra * non * genera codice nativo se lo si desidera. L'esecuzione sulla VM non è un requisito. Non c'è bisogno di andare con D o Nim –
È possibile trovare tutte le lingue menzionati in precedenza, oltre a un po ', qui: http://wiki.python.org/moin/PythonImplementations
- 1. Linguaggi di programmazione SIMD
- 2. matematiche Linguaggi di programmazione
- 3. Automobili Linguaggi di programmazione
- 4. Linguaggi di programmazione funzionale introspezione
- 5. gVim e più linguaggi di programmazione
- 6. Come si incorporano altri linguaggi di programmazione nel codice?
- 7. Endianness nei linguaggi di programmazione
- 8. Esistono linguaggi di programmazione senza variabili globali?
- 9. Imparare come funzionano i linguaggi di programmazione
- 10. Generazione codice C++ con Python
- 11. Possibile usare Mathematica da altri linguaggi di programmazione (python/C#)?
- 12. Convergenza di linguaggi matematici e di programmazione
- 13. Documentazione offline per vari linguaggi di programmazione?
- 14. I linguaggi di programmazione con evidenziazione della sintassi sono possibili utilizzando le espressioni regolari?
- 15. Ordinamento in linguaggi di programmazione funzionale
- 16. sintassi simile, ma si mostra l'errore ma un altro non
- 17. Frequenza dei simboli nei linguaggi di programmazione
- 18. Linguaggi di programmazione per il sistema distribuito
- 19. Problemi culturali nei linguaggi di programmazione
- 20. Altri linguaggi di programmazione che supportano impliciti "a la Scala"
- 21. Quali linguaggi di programmazione hanno gli interpreti più facilmente implementabili?
- 22. Uso reale dei linguaggi di programmazione concatenativi
- 23. Covarianza e controvarianza nei linguaggi di programmazione
- 24. Quali linguaggi di programmazione hanno compilatori JIT?
- 25. I linguaggi di programmazione funzionale sono adatti alla programmazione grafica?
- 26. Linguaggi di programmazione che vengono compilati in PHP?
- 27. Generatore di codice Python
- 28. Codice di Eclipse con evidenziazione della sintassi
- 29. Riferimento di funzioni simili tra i linguaggi di programmazione
- 30. Quali linguaggi di programmazione supportano lo scambio di codice e/o il sandboxing?
Java Bytecode = codice nativo –
@Ed - leggere la domanda!. Ha detto "Bene, se non altro le lingue simili a pitoni che generano il bytecode .net/java vanno bene". – Rad
Touche, avrei dovuto leggerlo più da vicino. –