Scheme2Js

Скриншот программы:
Scheme2Js
Детали программы:
Версия: 20101114
Дата загрузки: 11 May 15
Разработчик: Florian Loitsch
Тип распространения: Бесплатная
Популярность: 6

Rating: nan/5 (Total Votes: 0)

Scheme2Js является схема с компилятором Javascript. В то время как некоторые усилия были потрачены на том, как можно ближе к R5RS, мы сосредоточены в основном на эффективности.
Обычно Scheme2Js производит Javascript код, что сопоставимо с ручной написана код. Для достижения этой производительности, Scheme2Js не полностью соответствует R5RS. В частности, не хватает поддержки для продолжения, точных цифр и лечит хвостовую рекурсию только частично.
Scheme2Js обеспечивает несколько флагов, которые позволяют изменить результат:
ย ท --no-JS-точка-обозначения запрещает доступ к полям JavaScript с точечной нотации. Этот флаг отключает доступы вида ху, как и в document.getElementById. Это, однако, по-прежнему можно получить доступ к действительный выражение с помощью функции JS-поле.
ย ท --mutable-струны: для того, чтобы улучшить производительность строковых операций и облегчить взаимодействие между схемой и код JavaScript, реализации схему по умолчанию карты строк в строк JavaScript в. Вопреки схеме строк, строки JavaScript, однако неизменными. Этот флаг карты струны к классу JavaScript, который представляет Схема строк, которые изменяемые. Полученный код может быть немного медленнее, и это является более трудным для взаимодействия с Javascript кода.
ย ท --encapsulate-части инкапсулирует программу в анонимной функции. Только глобальные переменные находятся за пределами этой анонимной функции. С одной стороны, это вводит один вызов функции анонимной функции. Но, с другой стороны, большинство реализаций Javascript должен работать быстрее с этой оптимизации: как правило, хэш-таблицы используются для представления областей в JavaScript. При использовании анонимной функции программы переменные разделены на собственном меньшем хеш-таблицы, которые (в теории) ускоряет доступ к этим переменным. Что еще более важно переменные хранятся в собственной хэш-таблицы, а не в глобальной хеш-таблицы, которая доступна в глобальной переменной. Это очень легко косвенно изменять содержимое глобальных переменных. Встраивание или другие общие оптимизаций, следовательно, невозможно сделать на глобальные переменные. По хранения переменных программы в анонимной функции эти оптимизации снова стать возможным.
ย ท --optimize-вар-номер уменьшает количество переменных, используемых в результате JavaScript кода. Код может работать быстрее, но сложнее для отладки, а имена переменных теряются и та же переменная может быть использована несколько раз.
ย ท --optimize-то время: с этим флагом Scheme2Js оптимизирует общее в то время как петли. Неоптимизированный в то время как петли часто в виде:
 в то время как (правда) {
   если (тест)
     resVar = ВИЭ;
   другой {
     modify_loop_variable;
     Продолжать;
   }
   ломать;
 }
 
Эта оптимизация ищет этих моделей и перемещает тест в то время как петли:
 в то время как (тест!) {
   modify_loop_variable;
 }
 resVar = ВИЭ;
 
Эта оптимизация реализована лишь недавно, и поэтому еще не активирована по умолчанию.
ย ท --verbose выводит некоторую информацию.
ย ท --no-встраивание отключает все функции встраивание (постоянные, возможно, до сих пор быть встроен).
ย ท --inline-глобальные позволяет Scheme2Js встроенные глобальные функции и константы. Это может иметь два нежелательных побочных эффектов: для одного, глобальные переменные часто используются для передачи данных между различными модулями. Некоторые встроены функции теряются, если нет ссылки на них больше. Если глобальные функции, которые будут использоваться за пределами модуля, не следует использовать этот флаг. (Это поведение может измениться в будущих версиях Scheme2Js.)
ย ท --unresolved-это-JS: если переменная является несвязанной, компилятор будет считать, что переменная приходит из другого модуля, или из JavaScript. См схему раздел - Javascript для более детального обсуждения схемы интерфейса JavaScript.
ย ท --js-это обеспечивает эту переменную внутри функции Scheme. Таким образом, процедура схема может быть использована в качестве методов объектов JavaScript.
ย ท --no-tailrec отключает tailrec к то время как петли-оптимизации. Если вы подозреваете, что ошибка в пути компилятора перевода хвост РЭС, вы можете попробовать этот флаг.
ย ท --no-Оптимизация-звонки отключает Scheme2Js встраивание двойных или одинарных операций. Например sci_plus (3, 5) оптимизирована для (3 + 5). Эта оптимизация является весьма важным, и нет, как правило, нет причин, чтобы отключить его.
ย ท --no-оптимизации, consts отключает предварительно постоянный расчет. Если отключен (с этим флагом), составные константы не вычисляются предварительно и их вхождения заменяются ссылкой на переменной, содержащей константу. Это делает повторное доступ на эти константы быстрее, но вводит новые переменные.
ย ท --no-оптимизации, boolify отключает boolify оптимизации. В JavaScript и boolify Scheme не являются эквивалентными: JavaScript считает ложными, 0, NULL и определено быть ложным, в то время как схема имеет только #F. Неоптимизированный boolify поэтому всегда добавляет тест против ложной: если (== тест ложь!) ... Если Scheme2Js видите, что сам тест является логическим, она может удалить ненужное == ложное испытание!. Этот флаг отключает эту оптимизацию.
ย ท --d ЭТАП печатает точка-файл (см GraphViz) в AST после стадии ЭТАПЕ. Возможные этапы: расширить, дерево, символ, узел-elim1, хвост, Inline, постоянное распространение,-RM-неиспользованный-Вар, захват, узел-elim2, в то время как, (ТТ "заявления"), узел-elim3. Обычно один не нужен этот флаг, если для отладки.
ย ท --print-LOCs печатает оригинальные местах, как комментариях к файлу JavaScript. Эти места являются в настоящее время характер смещения от начала файла

Что нового В этом выпуске:.

  • Малая изменения и исправления были перенесены из-хоп в Scheme2Js.

Что нового в версии 20100816:.

  • выполнения ридер Scheme2Js "в настоящее время признает ключевые слова
  • Несколько ошибок было исправлено.

Что нового в версии 20081219:.

  • компилятор был оптимизирован
  • Это намного быстрее и потребляет меньше памяти.
  • Многие ошибки были исправлены.
  • п Модуль по умолчанию Scheme2Js теперь похож на одного из Bigloo.
  • Этот релиз поддерживает определенные имена.

Похожие программы

ClamAv#
ClamAv#

3 Jun 15

Pyrex
Pyrex

3 Jun 15

GCC
GCC

16 Aug 18

GCC MELT
GCC MELT

17 Feb 15

Комментарии к Scheme2Js

Комментарии не найдены
добавить комментарий
Включите картинки!