Как сделать язык JVM или .NET?

Это должно сработать -

my_list=['a','b','c','d']

your_filter  = ','.join(["'" +i + "'" for i in my_list])

new_dataset  = spark.sql("SELECT * FROM hive_dataset WHERE variable_name IN ({})".format(your_filter))
13
задан Unknown 4 April 2009 в 07:31
поделиться

5 ответов

Вы находитесь отчасти в удаче. Существует взрыв языков, разрабатываемых для.NET, и существуют статьи / ресурсы, предназначенные для людей такой как самостоятельно (не только крупные корпорации с тоннами денег для инвестирования).

Поиск "динамического времени выполнения языка", и идет оттуда.

Вот некоторые ссылки:

Блог парня, который является мозгом позади IronPython

Дом Динамического Времени выполнения Языка

Статья о том, как IronPython был реализован

Сообщение в блоге, говорящее об абстрактных синтаксических деревьях и ДОЛЛАРЕ

7
ответ дан 2 December 2019 в 00:19
поделиться

Спецификации виртуальной машины Java, Второй Выпуск доступен онлайн.

Можно быть нацелен на JVM при наличии записи компилятора, который производит байт-код Java (который определяется в спецификациях JVM.)

Или, путем использования существующих библиотек, таких как Apache BCEL, можно произвести допустимый class файлы через программу Java, не имея необходимость на самом деле управлять байт-кодом на уровне байта.

4
ответ дан 2 December 2019 в 00:19
поделиться

MSIL больше не называют MSIL как общедоступный стандарт, это - CIL (Общий Промежуточный язык), часть CLI (Общеязыковая инфраструктура) стандарт.

Вот спецификация стандарта ECMA-335 CLI.

3
ответ дан 2 December 2019 в 00:19
поделиться

Ответ на обновленный вопрос:

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

То, что позволяет такому количеству людей разработать языки для этих платформ, является, вероятно, доступностью нескольких очень полных примеров с публично доступным исходным кодом.

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

Microsoft самостоятельно опубликовала Ротор, там также Моно, конечно. Существует также много популярных методов для генерации кода во время выполнения, которые создают простые классы обертки на лету - это также мини-компиляторы.

Компилятор C# довольно быстр и выставляет большинство средств CLR прямым способом, таким образом, Вы могли записать компилятор, который просто произвел временные файлы C# и затем заставил компилятор C# заканчивать задание.

1
ответ дан 2 December 2019 в 00:19
поделиться

Для.NET можно использовать деревья выражений ДОЛЛАРА или даже скомпилировать в существующий высокоуровневый язык как C# или Java и затем скомпилировать это. Некоторые высокоуровневые языки non-VM (liek Haskell и Eiffel) компилируют в C. Если Вы хотите скомпилировать в MSIL или байт-код JVM, можно использовать Моно. Cecil или BCEL для создания этого легче сделать.

0
ответ дан 2 December 2019 в 00:19
поделиться
Другие вопросы по тегам:

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