2009-03-04 1 views

ответ

0

Я думаю, это может зависеть от того, какую версию вы спрашиваете. Я не эксперт по ActionScript, но похоже, что дизайнеры пытаются сделать его объектно-ориентированным языком. Я думаю, что с 3.0 они эффективно сделали переход (по крайней мере частично) объектно-ориентированным языком.

3

Хотя это называется Action «Script», это объектно-ориентированный язык, очень похожий на Java. Весь код компилируется в двоичный swf-файл.

  • ActionScript 1 был также ОО на основе прототипов.

  • ActionScript 2 добавляет классы, аксессоры и т. Д., Но это в значительной степени синтаксический сахар поверх AS1.

  • ActionScript 3 полностью переработан и работает в новой виртуальной машине (AVM2) внутри Flash Player параллельно со старой виртуальной машиной.

+0

Итак? Многие другие языки также скомпилируются в байт-код. Некоторые даже получают компиляторы JIT, и они обычно группируются как языки сценариев. У Python уже есть два. PHP также может быть байт-скомпилирован, как и Perl. Очень немногие языки сценариев на самом деле используют интерпретатор, большинство из которых я знаю о компиляции. –

+0

Предыдущий комментарий частично отредактирован редактированием, но «скрипт» остается в кавычках. –

+0

ActionScript - это язык сценариев. Сценарий не является программированием. ActionScript несколько неструктурирован. Он стал лучше, но я все еще вижу много возможностей для улучшения. – D3vtr0n

1

AS 3.0 можно записать в виде OO. Предыдущие версии более похожи на JavaScript и процедурные.

+0

Как и другие плакаты, опубликованные JavaScript (и, таким образом, AS <3.0), очень подходят для OO-стиля. Это просто не на основе классов. –

2

Эти два варианта не являются взаимоисключающими.

Структура более поздних версий AS объектно-ориентированная, однако она не скомпилирована в собственный ассемблер. Вместо этого он интерпретируется как байтовый код.

+0

Это. +1 Как я думаю об этом, ваш SWF не может работать сам по себе. Он проходит через игрока, который его интерпретирует. На мой взгляд, это разница между языком сценариев и языком программирования. http://en.wikipedia.org/wiki/Scripting_language – Sean

+0

@Sean, так что вы скажете, что Java - это язык сценариев? –

2

Кто скажет, что язык сценариев не может быть OO? Я бы сказал, что это как скриптовый язык, так и OO.

Я имею в виду, например, Python часто называют языком сценариев и может использоваться просто для сценариев существующих приложений. Это тоже OO. На самом деле оба могут быть объединены, если рассматриваемое программное обеспечение требует, чтобы вы передали объект, который придерживается определенного интерфейса.

+0

Это, безусловно, язык сценариев, и, безусловно, OO. Это также НЕ является языком программирования. – D3vtr0n

7

AS - это вариант ECMAScript. вы можете сказать, что это диалект JavaScript.

как таковой, он имеет и всегда обладал качествами OO. это не «больше» OO в 3.0, чем раньше, это просто «java-OO like», чем раньше. потому что теперь он включает поддержку языка для наследования по классам.

, конечно, обычное основанное на прототипе наследование все еще существует, и это надмножество класса.

и ничего из этого не делает его менее «сценарием», чем раньше.

+0

И AS, и JS - это варианты JavaScript. Я бы не назвал ни одного из них диалектами другого. В противном случае, я согласен. +1 –

+0

+1 для «java-OO like» –

+0

ECMAScript - это спецификация. Оба сценария ActionScript и JavaScript основаны на этой спецификации. Здесь нет вариантов. – Luke

1

Кто-то описал ActionScript для меня как ориентированного на события языка программирования. AS3 - это язык сценариев с функциями OO.

0

OK Спасибо за вход ребята, лучшие ответы, похоже, AS3 - это как язык ООП, так и язык сценариев.Я предполагаю, что это восходит к определению языка сценариев - скомпилированы языки сценариев? Я приравнивал AS3 и Java, потому что оба скомпилированы в байт-код и запускаются внутри виртуальной машины, но я никогда не слышу, что java называется языком сценариев, я до сих пор немного запутался ...

Я думаю, мой вопрос в настоящее время отличает Java от AS3?

2

Что отличает Java от AS3?

Не много. Оба генерируют байт-код, который передается, затем скомпилируется в машинный код на целевой платформе через JIT.

Хотя AS3 обычно описывается как принадлежащий к семейству EcmaScript, у него есть две совместно существующие объектные модели под капотом. Один из них - традиционный прототипный подход, а другой - гораздо более похожий на Java подход, с пакетами, классами и интерфейсами, подклассы, абстрактные и конечные методы и т. Д.

Аналогично, AS3 может использоваться без какой-либо явной типизации (точно так же как javascript), или его можно использовать с сильной типизацией, например Java. В отличие от AS2, любая информация о типе данных кодируется в скомпилированных байт-кодах и проверяется во время выполнения.

Обратите внимание, что настройки компилятора по умолчанию побуждают разработчиков идти к java-подобному вкусу, но это ничего, что нельзя исправить несколькими вариантами.

По сути, ActionScript развился с языка игрушек (см. Flash 4 и ниже) на язык, похожий на javascript (Flash 5 и 6), на язык ecmascript, притворяющийся чем-то другим (Flash 7 и 8) тем, что имеет общего с Java и C# теперь больше, чем со своими старыми инкарнаций (Flash 9 и 10)


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

  1. Возможность запуска скрипта от источника напрямую. AS3 требует явного этапа компиляции.
  2. Возможность оценивать строку во время выполнения в виде фрагмента кода. Не ищите выражения «eval» в AS3, его просто не существует.
+0

Хороший ответ. AS3 также не имеет множественного наследования, что доказывает мне, что это не настоящий язык ООП, а скорее язык SCRIPT. – D3vtr0n

+5

По этой логике Java и C# также являются языками SCRIPT, что кажется не совсем правильным. – Metal

1

Без определения того, что вы подразумеваете под языком сценариев, никто не может ответить на этот вопрос.

Как Ларри Уолл ставит его так хорошо в Programming is Hard, Let's Go Scripting...: «Я думаю, что для большинства людей, сценарии много, как непристойности я не могу определить, но я буду знать, когда я вижу его.». и «Но в основном, сценарий не является техническим термином. Когда мы называем что-то языком сценариев, мы в первую очередь делаем лингвистическое и культурное суждение, а не техническое суждение».