ActionScript-它是什么编程语言类别?

ActionScript-它是什么编程语言类别?,actionscript,Actionscript,ActionScript是一种脚本语言还是更像Java这样的面向对象编程语言?对维基百科的快速检查将其列为脚本语言……我认为这可能取决于您询问的版本。我不是actionscript专家,但看起来设计师们正在努力使其成为一种面向对象的语言。我认为,在3.0中,他们已经有效地(至少部分地)跳转到了面向对象语言。尽管它被称为动作“脚本”,但它是一种非常类似Java的面向对象语言。所有代码都被编译成一个二进制swf文件 ActionScript 1也是基于原型的OO ActionScript2添加了类

ActionScript是一种脚本语言还是更像Java这样的面向对象编程语言?对维基百科的快速检查将其列为脚本语言……

我认为这可能取决于您询问的版本。我不是actionscript专家,但看起来设计师们正在努力使其成为一种面向对象的语言。我认为,在3.0中,他们已经有效地(至少部分地)跳转到了面向对象语言。

尽管它被称为动作“脚本”,但它是一种非常类似Java的面向对象语言。所有代码都被编译成一个二进制swf文件

  • ActionScript 1也是基于原型的OO

  • ActionScript2添加了类、访问器等,但这在AS1之上几乎是一种语法糖分

  • ActionScript 3经过彻底重新设计,在Flash Player内的新虚拟机(AVM2)中与旧虚拟机并行运行


它是EcmaScript的变体,因此与JavaScript类似


AS 3.0可以编写为OO。以前的版本更像JavaScript和过程

这两者并不相互排斥


后AS版本的结构是面向对象的,但是它没有编译成本机汇编程序。它被解释为字节码。

谁说脚本语言不能是OO?我认为它既是一种脚本语言,也是一种面向对象的语言


我的意思是,例如,Python通常被称为脚本语言,可以简单地用于编写现有应用程序的脚本。这也是OO。事实上,如果所讨论的软件(例如)要求您传入一个附着于某个接口的对象,则两者都可以合并。

这是ECMAScript的一个变体。可以说这是JavaScript的一种方言

因此,它一直都具有OO特性。3.0中的OO并没有比以前“更多”,只是比以前更像“java OO”。因为现在它包括了对基于类的继承的语言支持

当然,通常的基于原型的继承仍然存在,它是基于类的风格的超集


这一切都不会使它比以前少编写脚本。

有人向我描述ActionScript是一种面向事件的编程语言。AS3是一种具有OO特性的脚本语言

好的,谢谢大家的支持,最好的答案似乎是AS3是一种OOP语言和脚本语言。我想这可以追溯到脚本语言的定义——是否编译脚本语言?我一直把AS3和Java等同起来,因为它们都编译成字节码并在VM中运行,但我从来没有听说Java被称为脚本语言,我想我还是有点困惑

我想我现在的问题是Java和AS3的区别是什么

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缺少这两种特性:

  • 直接从源代码运行脚本的能力。AS3需要一个明确的编译步骤
  • 在运行时将字符串作为代码片段进行求值的能力。不要在AS3中寻找“eval”语句,它根本不存在

  • 如果不定义脚本语言的含义,没有人能回答这个问题

    正如拉里·沃尔(Larry Wall)所言: “我认为,对大多数人来说,脚本编写很像淫秽。我无法定义它,但我一看到它就会知道。” 及
    “但基本上,脚本并不是一个技术术语。当我们把某个东西称为脚本语言时,我们主要是在进行语言和文化判断,而不是技术判断。”

    ?许多其他语言也被编译成字节码。有些甚至获得了JIT编译器,它们通常被归类为脚本语言。Python已经有了两个。PHP也可以进行字节编译,Perl也可以。很少有脚本语言实际使用解释器,我所知道的大多数都是编译语言。前面的注释被编辑部分废弃,但“脚本”仍然保留在可怕的引号中。ActionScript是一种脚本语言。脚本不是编程。ActionScript有点非结构化。它已经变得更好了,但我仍然看到了很大的改进空间。@Devtron,你能定义一下脚本和编程之间的区别吗?是的,编程需要指令和结构,而脚本不需要。AS和JS都是JavaScript的变体。我不认为他们两个都是对方的方言。否则,我同意+1ECMAScript是一种规范。ActionScript和JavaScript都基于该规范。这里没有变体。-1表示它是从JavaScript派生的(特别是ActionScript 3)。他们是两种不同的语言。请再读一遍,我会的