Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Терминология компиляторов (http://www.flasher.ru/forum/showthread.php?t=138726)

Psycho Tiger 14.04.2010 20:39

Терминология компиляторов
 
Последнее время начал путаться в терминологии компиляторов, возможно от того, что лезу вглубь =)
Давайте я начну, а вы поправите, так ли я всё понимаю, да и пометка новичкам останется - поэтому пишу все компиляторы, что знаю или слышал.

fcsh - Adobe Flex Compiler SHell (fcsh), компилятор используемый во флексе.
mxml - язык, основанный на xml для флексового фреймворка (ну, и не только)
mxmlc - то же самое, что и fcsh, это название исполняемого файла компилятора флекса. UPD: в папке FlexSDK нашел mxmlc.jar и fcsh.jar. Какой из них зачем? Ещё нашел там папку ant, что-то я совсем потерялся.
ant - Apache Ant, как пишут создатели это Apache Ant is a Java-based build tool. In theory, it is kind of like make, without make's wrinkles. (Apache Ant это Java-основанная утилита. В теории, это что то вроде создателя (создателя? Компилятор имеется ввиду?) без создательского геммороя). По сути, это универсальная-компиляционная-машина, которая скомпилирует всё что угодно под любой язык, лишь бы были либы для компиляции под этот язык, верно?
mtask - тоже не очень ясный момент. Вроде при компиляции mxmlc при синтаксических ошибках в оутпуте пишут это в скобах - то есть есть резон, что это тоже флексовый компилятор. UPD:
http://www.mtasc.org/
Соответственно, какая разница между ним и mxmlc?
Flash IDE - Flash 8, Flash CS3, Flash CS4, etc. Использует какой-то свой ужасно медленный компилятор (быть может mxmlc без кеширования? Но зачем...)

И какие ещё есть флешевые компиляторы?

expl 14.04.2010 22:26

Цитата:

mtask - тоже не очень ясный момент. Вроде при компиляции mxmlc при синтаксических ошибках в оутпуте пишут это в скобах - то есть есть резон, что это тоже флексовый компилятор. UPD:
Может mtasс? (старый, очень хороший, быстрый, опенсорсный компилятор, но только для AS2 - сейчас про него можно смело забыть,
теперешний его приемник haXe - но со своим языком и не многими используется)
Цитата:

Использует какой-то свой ужасно медленный компилятор (быть может mxmlc без кеширования? Но зачем...)
Просто свой медленный, проприетарный компилятор :)

Psycho Tiger 14.04.2010 23:02

Цитата:

Может mtasс? (старый, очень хороший, быстрый, опенсорсный компилятор, но только для AS2 - сейчас про него можно смело забыть,
теперешний его приемник haXe - но со своим языком и не многими используется)
Да, опечатался :(
Ну, haXe это уже транслятор по сути, пусть и сразу в байткод. В смысле того, что haXe`ом чистый AS3 не скомпилируешь.

iflamberg 15.04.2010 01:15

make - это команда unix-подобных систем, которая запускает makefile, что есть нечто вроде bat-скрипта, которая собирает из исходников программу (компилирует)(в unix-ах программы поставляются пакетами - уже исполняемыми файлами под конкретную unix-вариацию, или исходниками, которые можно скомпилировать практически под любой unix).

Psycho Tiger 15.04.2010 18:13

А, понятно. Ну, остальное вроде в отношении ant`а верно.

etc 15.04.2010 18:48

ant вообще-то не более чем движок макросов. Компилировать он ничего не умеет.

wvxvw 15.04.2010 19:10

Flash IDE использует практически тот же ASC (ActionScript Compiler), что и в Flex SDK. Единственная разница в оболочке (урезаный команд-лайн интерфейс + очевидно какие-то добавки для работы с линкером). Медленный это скорее всего линкер и особенно транскодер флешевой графики, ну и видео транскодер, я тоже так думаю не быстрый :)

FCSH (или как утверждает автор FCSh) - это шелл (приложение которое запускает и следит за выполнением другого приложения). FCSH может запускать MXMLC, COMPC и ASC. Вобщем, грубо говоря, вся его задача сводится к кешированию результатов предыдущей компиляции.

А, есть еще флешевый компилятор который написали SWFTools http://wiki.swftools.org/index.php/As3compile
Чесно говоря, ни разу не пользовался, надо будет как-нибудь попробовать. И есть еще куча мелких проектов которые умеют компилировать каки-нибудь части AS3, но до полноценных компиляторов не дотягивают. Есть у hurlant компилятор написаный на AS3, есть SWFMill и им подобные которые чуть-чуть чего-то умеют. Есть на HaXe библиотечка format.abc - тоже, по сути заготовка к компилятору.

Во времена AS2 был еще FLASC компилятор, но как-то не довелось им воспользоваться, ну и была куча програм в той или иной степени умеющих генерить SWF, восновном графику.

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

Psycho Tiger 15.04.2010 21:12

Ага, понятно.. Спасибо большое.
Как то ещё вопрос появился, тоже по компиляторам: а что кеширует mxmlc? У меня есть мувиклип с 120 кадрами, в каждом кадре битмапа+мувиклип. Собираю это в swc и компилю потом mxmlc - в общем, время компиляции просто неимоверно долгое, даже при двойной компиляции (когда по идее должно вообще вылететь nothing changed -> skip почти сразу, а нет, ждем минуты 2 и только после).

wvxvw 15.04.2010 21:20

Зависит от версии, и сколько хип / стек памятит есть у JVM, может быть так, что флешка получается очень большая и поэтому не кешируется, а может там флекс сам чего-то дописывает, он тоже любит иногда, особенно при эмбеде других SWF дописать, типа имя классу по-новой сгенерить или еще что-нибудь в том же духе. Я бы в первую очередь попробовал увеличхить heap memory компилятору, но если не сработает - скорее всего просто баг.
http://www.caucho.com/resin-3.0/perf...jvm-tuning.xtp

Psycho Tiger 15.04.2010 21:56

Было минимум 386 мб, без верхнего предела. Поставил вот так:
Код AS3:

java.args=-Xms512m -Xmx1024m -Dsun.io.useCanonCaches=false

Гайд выбрал этот, он чуть более понятен ) Единственное что у меня 4 флекс, но я думаю аргументы виртуальной машины не меняли. Не помогло =(
Буду качать сейчас последний сдк флексовый. Кстати, флешка там получается мелкой, на выходе мегабайт всего.


Часовой пояс GMT +4, время: 14:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.