Языки программирования с Python-подобным синтаксисом, но с генерацией собственного кода - PullRequest
28 голосов
/ 21 июля 2009

Может ли кто-нибудь указать на язык программирования, имеющий синтаксис, похожий на python, но с самого начала предназначенный для генерации нативного кода? Я знаю только о Boo, но он использует .net, а не генерацию собственного кода. Хорошо, если ничего кроме Python-подобных языков, которые генерируют .net / java-байт-код, тоже хорошо.

Ответы [ 10 ]

13 голосов
/ 21 июля 2009

Cython может подойти - код, который он генерирует, предназначен для расширений Python, но все это можно упаковать, и вы будете постоянно выполнять нативный код (после 'import' ;-) .

11 голосов
/ 18 ноября 2009

Должен признать, что я не совсем понимаю ваш вопрос по двум причинам:

  1. Вы запрашиваете язык с генерацией собственного кода, но генерация собственного кода не имеет ничего общего с языком, это особенность реализации. Каждый язык может иметь реализацию с генерацией собственного кода. Несколько реализаций Python имеют генерацию собственного кода. Существуют компиляторы C, которые компилируют в байт-код JVM, байт-код CIL или даже исходный код ECMAScript. Есть даже C переводчики . Существуют также компиляторы, которые компилируют исходный код Java или байт-код JVM в собственный код.

  2. Почему вы заботитесь о синтаксисе? Вероятно, это наименее важный фактор при выборе языка программирования.

В любом случае, Nim - это язык программирования, который имеет реализацию, которая поддерживает генерацию собственного кода (или, точнее, реализацию, которая поддерживает генерацию исходного кода на C), и чей синтаксис представляет собой гибрид между стилем виртского языка Судя по всему, наиболее важными факторами являются Оберон и Дельфы) и Питон.

Однако тот факт, что он имеет синтаксис Pythonic, совсем не поможет вам, если вам не нравится дизайн в стиле европейского языка или ООП в виртском стиле.

7 голосов
/ 23 марта 2010

Выезд Кобра

На него сильно влияют Python, C #, Eiffel, Objective-C и другие языки программирования. Он поддерживает как статическую, так и динамическую типизацию. Он имеет первоклассную поддержку для модульных тестов и контрактов. Cobra обеспечивает быстрое развитие и производительность на одном языке.

7 голосов
/ 10 декабря 2009

Также встречается сегодня Восхищение применение синтаксиса Python на серверной части D.

И Сходятся тоже.

6 голосов
/ 23 февраля 2010

шедскин компилирует Python в C ++

со страницы проекта shedskin

Shed Skin - экспериментальный компилятор, что можно перевести чисто, но неявно статически типизированный Python программы в оптимизированный C ++. Оно может генерировать автономные программы или модули расширения, которые можно импортировать и используется в больших программах на Python.

4 голосов
/ 02 января 2010

Джинн, который является частью проекта гнома: http://live.gnome.org/Genie

Я думаю, это именно то, что вы ищете.

3 голосов
/ 23 декабря 2009

PyPy - это проект по повторной реализации Python в Python. Одна из его целей - разрешить использование нескольких серверных частей, включая C. Таким образом, вы можете взять чистую программу на Python, преобразовать ее в C и скомпилировать в нативный код. Это все еще в стадии разработки, поэтому, вероятно, не подходит для производственного кода.

3 голосов
/ 21 июля 2009

Если вы довольны тем, что компилируется в байт-код Java, вы можете взглянуть на Jython . Цитирую их FAQ :

JPython - это реализация языка программирования Python, предназначенная для работы на платформе Java (tm). Он состоит из компилятора для компиляции исходного кода Python до байт-кодов Java, которые могут выполняться непосредственно в JVM, набора вспомогательных библиотек, которые используются скомпилированными байт-кодами Java, и дополнительной поддержки, позволяющей сделать использование пакетов Java из JPython тривиальным .

На самом деле я еще не использовал его, но рассматриваю его в некоторых проектах, где мне нужно интегрироваться с существующей базой кода Java.

НТН

2 голосов
/ 28 октября 2010

Вы можете найти все ранее упомянутые языки, а также некоторые другие, здесь: http://wiki.python.org/moin/PythonImplementations

1 голос
/ 21 июля 2009

Вы также можете исследовать IronPython - дополнение Python в .NET Framework

...