zoukankan      html  css  js  c++  java
  • 笔记:编写OC程序的61个建议-1-将其视为动态语言

    养成把学到到东西记录下来。。。。。。。

    Objective-C是一门动态语,它和C++是兄弟,老爸就是牛逼的C,至于它们为什么造出来,是因为有人受不了C的面向过程开发方式(时代在进步),所以基于C加入了面向对象特性扩充而成。

    虽然两者的父亲是一样的,但两者点机制差异很大。OC基于动态运行时类型,C++基于静态类型。

    运行时类型的语言,其编写的程序不能直接编译成可令机器读懂的机器语言(0 1 ),而是在运行时把程序转译成可令机器读懂的机器语言,这也是OC作为动态语言的标志;(JAVA和C#也是),每一种运行时语言,都有自己对应的运行环境,它负责来运行并执行你的代码。如:java-jvm,c#-clr,oc-runtime;

    静态类型的语言,其编写的程序编译时能直接生成可令机器读懂的机器语言;

     

    动态语言的优点:

    灵活性:随着时代进步,对原来语言在做项目时表现的不满,进化而出。。。3阶段(隔半年后再回看,会修改这些内容,提升角度观点都不同,现在还是有点理不清原文内容)

    a,传统的面向过程对语言开发,如c语言:函数调用很直白,直接调用内存地址,虽然这样很好,但是太死板

    b,改进的开发面相对象的语言,如c++语言:相对面相过程,面相对象的语言更加灵活,增加了类的概念,使本来直接返回内容,增加啦变化性,导致同样的方法,在不同的类有不同的方法,虽然进步啦,但还是有些死板,因此称C++为静态语言

    c,动态开发语言,希望更加灵活,把类的实现更加抽象化,做成一套完成运行阶段的检测环境,形成动态开发语言。动态语言是会尽可能将编译和链接时要做的事推迟到运行时,只要有可能,就会把问题放到运行时来解决。所以更灵活

    动态语言的缺点:

    1,执行效率,因为不是直接生成机器码,需要在运行环境进行解释编译等,所以才有啦一句"静态开发语言执行效率要比动态开发语言高",也正因此,开发语言的人要付出很大一部分努力来保持运行时系统的小巧。

    2,安全性,动态语言编译的程序时需要运行时进行解释编译等,所以其编译后的源码可被反编译出来,让人得源码。

  • 相关阅读:
    Sphinx安装配置应用
    错误解决:error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
    常用Linux命令
    关于安卓开发的学习一:webview
    OpenFirewall
    C#启动或停止 计算机中“服务”
    关于C#操作防火墙,阻止程序联网
    用C#来控制高级安全Windows防火墙
    C#添加删除防火墙例外(程序、端口)
    C#Udp组播
  • 原文地址:https://www.cnblogs.com/xuzhongnang/p/4981675.html
Copyright © 2011-2022 走看看