卡卡卡卡咔11吧 关注:12贴子:1,320
  • 15回复贴,共1
想实现一个编译期反射机制。。智商捉鸡啊。。路漫漫吧。。


IP属地:上海来自手机贴吧1楼2013-11-03 22:00回复
    2楼2013-11-09 13:41
    收起回复
      动态语言和静态语言
        通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。
      (1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
      (2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
      对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。
      强类型定义语言和弱类型定义语言
      (1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。
      (2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
      强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
      例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。
      @915913244 百度的


      IP属地:上海3楼2013-11-09 15:36
      收起回复
        @915913244
        召唤下标准帝给解释解释 强弱类型和动静态类型的区别
        @幻の上帝


        IP属地:上海4楼2013-11-09 15:41
        回复
          http://tieba.baidu.com/p/2422630477


          IP属地:北京5楼2013-11-09 16:15
          回复
            https://github.com/ouerkakaChango/XCCodeStandard
            4年之后终于试着做一做.问题很多,但是思路有了,最后主要问题是不能根据name获取type...,还是要到更底层(操作系统/编译器),跨平台也要分。先放着可能...
            收获还是有的。各种宏,模板元编程。如果vs支持c++17一些特性说不定我今天能写出来...
            轮子哥的比较在理。百度其他的都是工作不足的反射..
            https://www.zhihu.com/question/24788212/answer/28976103


            IP属地:上海6楼2017-07-19 17:36
            收起回复
              不行不行,太浪费时间了。不能这么研究下去了...实在要玩到js或者其他弱/动态语言里看看能不能玩。
              今天玩得有点伤,有点不想玩了。不过其实如果要研究二次编译,其实也有意义。
              linux g++里看看能不能玩玩二次编译,可能这种对我比较好理解,先放着,明天或过两天没空就试试...
              1.C++ linux-g++ 二次编译试验
              2.js等运行期确定类型的语言玩反射机制实现
              a.b.c.run(1,2)---> GO(a,run,1,2)


              IP属地:上海7楼2017-07-20 00:58
              回复



                IP属地:上海9楼2017-07-20 12:35
                回复