При выборе языка функционального программирования для использования с LLVM, каковы компромиссы?

TestComplete AutomatedQA является хорошим приложением тестирования для автоматизации тестирования GUI. Это поддерживает больше, чем просто Windows Forms также, таким образом, можно снова использовать его для других приложений. Это не открытый исходный код, и это является лучшим, чтобы я нашел. Я не видел эквивалент с открытым исходным кодом WatiN. Это действительно имеет бесплатную демонстрационную версию, поскольку Вы решаете, нравится ли Вам это или нет. Главная причина я пошел с ним, то, что это действительно экономически эффективно, по сравнению с другими приложениями тестирования.

33
задан james woodyatt 21 November 2009 в 00:13
поделиться

3 ответа

Хорошим выбором будут OCaml или Haskell. Почему бы не ознакомиться с руководствами по LLVM для каждого языка? Учебник по LLVM для OCaml находится здесь: http://llvm.org/docs/tutorial/OCamlLangImpl1.html

В наши дни Haskell набирает обороты, но есть много хороших библиотек синтаксического анализа для OCaml, включая Генератор парсера PEG Aurochs , Menhir и генератор парсера GLR Dypgen . Также ознакомьтесь с этой презентацией о pcl, библиотеке монадического комбинатора синтаксического анализатора для OCaml (например, Parsec для Haskell), там есть полезная информация, сравнивающая подходы Haskell и OCaml: http://osp.janestreet.com/files/pcl.pdf

Некоторые скажут, что лень дает Haskell преимущество в синтаксическом анализе, но вы также можете получить лень в OCaml.

14
ответ дан 27 November 2019 в 18:39
поделиться

Haskell имеет более высокий уровень привязки к LLVM, чем OCaml (Haskell предоставляет некоторые интересные гарантии безопасности типов), а Haskell имеет гораздо больше библиотек для использования (1700 пакетов на http://hackage.haskell.org ), что упрощает склеивание компонентов.

10
ответ дан 27 November 2019 в 18:39
поделиться

OCaml - единственный функциональный язык с привязками в самом дистрибутиве LLVM и документацией на llvm.org, такой как учебник Kaleidoscope . Если при сборке и установке LLVM у вас установлен OCaml, он также автоматически построит и установит привязки LLVM для OCaml. Более того, эти связывания OCaml использовались в течение многих лет , поэтому они являются зрелыми и надежными.

Я разрабатывал HLVM в OCaml с использованием стандартных привязок LLVM и обнаружил, что OCaml + LLVM - чрезвычайно мощная комбинация. HLVM предоставляет кортежи, массивы, объединения, совокупную стоимость владения всех хвостовых вызовов, общую печать, FFI в C, JIT-компиляцию и параллельную сборку мусора с весом виртуальной машины менее 2kLOC кода OCaml, разработка которого с нуля заняла всего несколько человеко-недель. . Численные характеристики HLVM уже намного превышают производительность самых быстрых на сегодняшний день FPL с открытым исходным кодом, включая сам OCaml . Я опубликовал статей в OCaml Journal , описывающих, как LLVM можно использовать из OCaml для всего, от базовой оценки выражений до сложных тем, таких как параллелизм и сборка мусора. Вам также может понравиться этот мини-пример .

массивы, объединения, совокупная стоимость владения всех хвостовых вызовов, универсальная печать, FFI to C, JIT-компиляция и параллельная сборка мусора с виртуальной машиной весом менее 2kLOC кода OCaml, на разработку с нуля ушло всего несколько человеко-недель. Числовая производительность HLVM уже намного превышает производительность самых быстрых на сегодняшний день FPL с открытым исходным кодом, включая сам OCaml . Я опубликовал статей в OCaml Journal , описывающих, как LLVM можно использовать из OCaml для всего, от базовой оценки выражений до сложных тем, таких как параллелизм и сборка мусора. Вам также может понравиться этот мини-пример .

массивы, объединения, совокупная стоимость владения всех хвостовых вызовов, универсальная печать, FFI to C, JIT-компиляция и параллельная сборка мусора с виртуальной машиной весом менее 2kLOC кода OCaml, на разработку с нуля ушло всего несколько человеко-недель. Численные характеристики HLVM уже намного превышают производительность самых быстрых на сегодняшний день FPL с открытым исходным кодом, включая сам OCaml . Я опубликовал статей в OCaml Journal , описывающих, как LLVM можно использовать из OCaml для всего, от базовой оценки выражений до сложных тем, таких как параллелизм и сборка мусора. Вам также может понравиться этот мини-пример .

JIT-компиляция и параллельная сборка мусора с виртуальной машиной весом менее 2kLOC кода OCaml, для разработки с нуля потребовалось всего несколько человеко-недель. Численные характеристики HLVM уже намного превышают производительность самых быстрых на сегодняшний день FPL с открытым исходным кодом, включая сам OCaml . Я опубликовал статей в OCaml Journal , описывающих, как LLVM можно использовать из OCaml для всего, от базовой оценки выражений до сложных тем, таких как параллелизм и сборка мусора. Вам также может понравиться этот мини-пример .

Компиляция JIT и параллельная сборка мусора с виртуальной машиной весом менее 2kLOC кода OCaml, для разработки с нуля потребовалось всего несколько человеко-недель. Численные характеристики HLVM уже намного превышают производительность самых быстрых на сегодняшний день FPL с открытым исходным кодом, включая сам OCaml . Я опубликовал статей в OCaml Journal , описывающих, как LLVM можно использовать из OCaml для всего, от базовой оценки выражений до сложных тем, таких как параллелизм и сборка мусора. Вам также может понравиться этот мини-пример .

Я опубликовал статей в OCaml Journal , описывающих, как LLVM можно использовать из OCaml для всего, от базовой оценки выражений до сложных тем, таких как параллелизм и сборка мусора. Вам также может понравиться этот мини-пример .

Я опубликовал статей в OCaml Journal , описывающих, как LLVM можно использовать из OCaml для всего, от базовой оценки выражений до сложных тем, таких как параллелизм и сборка мусора. Вам также может понравиться этот мини-пример .

6
ответ дан 27 November 2019 в 18:39
поделиться
Другие вопросы по тегам:

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