美文网首页Object-C
OC之起源及运行原理

OC之起源及运行原理

作者: 王小丫子 | 来源:发表于2018-05-02 20:07 被阅读0次
    oc与c++、java都是面向对象语言,但是语法上并不相同,因为oc实用的是“消息结构(messaging structure)而非“函数调用”(function calling) ,两种语言的区别如下:
    运行环境
    • 消息结构语言:其运行时所应执行的代码由运行环境来决定
    • 函数调用的语言:由编译器决定
    多态
    • 消息结构语言:不论是否多态,总是在运行时才会去查找所要执行的方法,实际上,编译器不关心接收消息的对象是何种类型。接受消息的对象也是在运行时处理的,其过程就是“==动态绑定==”(dynamic binding)
    • 函数调用语言:如果代码中调用的函数是多态,那么在运行时就要按照“==虚方法表==”(virtual table)来查出到底应该执行哪个函数实现</br>注释:【virtual table:是编程语言为实现“动态派发”(dynamic dispatch)或“运行时方法绑定”(runtime method binding)而采用的一种机制】

    oc的工作原理

    oc的重要工作都是由“运行期组件”(runtime component)而非编译器完成的。使用oc的面向对象特性所需的全部数据结构及函数都在运行期组件里面。

    举例来说运行期组件中含有全部内存管理方法。运行期组件本质上就是一种与开发者所编代码相链接的“动态库”(dynamic library),其代码能把开发者编写的所有程序粘合起来。这样的话,只需要更新运行期组建,即可提升应用程序的性能。而对于许多工作都在“编译器”(compile time)完成的语言,若想获得类似的性能提升,则要重新编译应用程序代码

    oc为c语言添加了面向对象特性,是其超集。oc使用动态绑定的消息结构,也就是说,在运行时才会检查对象类型。接收一条消息之后,究竟应执行何种代码,由运行期环境而非编译器来决定

    相关文章

      网友评论

        本文标题:OC之起源及运行原理

        本文链接:https://www.haomeiwen.com/subject/vtxhrftx.html