Языки программирования с подобным Python синтаксисом, но поколением собственного кода

Мы можем определить функцию, которая находит положение факторной переменной, которая при использовании в качестве регулярного выражения находит совпадение в столбце code:

find_match <- function(code, matches) {
    apply(sapply(matches, grepl, code), 1, match, x=T)
}

Если совпадения нет, эта функция возвращает NA для этой строки.

Далее, мы можем просто использовать mutate из dplyr, чтобы добавить каждый столбец факторов:

df %>% mutate(goal = find_match(code, goal),
              area = find_match(code, area),
              fr = find_match(code, fr))

Что дает:

  var1 var2              code goal area fr
1    1    a      goal\\\\meow    2   NA NA
2    2    b      area\\\\bank   NA    3 NA
3    3    c      area\\\\bank   NA    3 NA
4    4    d fr\\\\utilitarian   NA   NA  3
5    5    e     fr\\\\history   NA   NA  2
28
задан Imran 23 February 2010 в 17:06
поделиться

10 ответов

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

13
ответ дан Alex Martelli 28 November 2019 в 03:04
поделиться

Также найдено сегодня Delight применяет синтаксис Python на D-сервере.

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

7
ответ дан PhiLho 28 November 2019 в 03:04
поделиться

shedskin компилирует Python в C ++

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

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

6
ответ дан Imran 28 November 2019 в 03:04
поделиться

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

2
ответ дан flying sheep 28 November 2019 в 03:04
поделиться

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

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

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

HTH

3
ответ дан 28 November 2019 в 03:04
поделиться

Вы также можете изучить IronPython - реализацию Python на платформе .NET

1
ответ дан 28 November 2019 в 03:04
поделиться

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

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

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

В любом случае,

10
ответ дан 28 November 2019 в 03:04
поделиться

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

3
ответ дан 28 November 2019 в 03:04
поделиться

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

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

4
ответ дан 28 November 2019 в 03:04
поделиться

Ознакомьтесь с Cobra

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

7
ответ дан 28 November 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: