精华内容
下载资源
问答
  • 主要介绍了Spring 自动装配的二义性实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 但是,在有些条件下,例如测试一个基于Eclipse的程序,您可能会发现测试的GUI中全是二义性情形的测试对象。这些对象拥有几乎一样的属性,只有轻微的差异。很难直接指定目标对象属性的模式以及识别对象。识别的结果...
  • 为了解决单目视觉中单圆位姿测量方法存在虚假解的问题, 提出了矩形约束消除位姿二义性的方法。在相机已标定的情况下, 采集目标上圆与矩形的图像, 要求圆与矩形共面或者两个平面相互平行。首先通过相关数学推导可获得...
  • 基于圆特征的视觉测量方法简单且精度高,因此具有广泛的机器视觉应用,但单个圆特征的单目视觉位姿估计存在二义性问题。为了有效剔除虚假解,基于三线构型的姿态估计方法,提出了一类基于角度约束的圆位姿二义性消除...
  • 针对单个圆进行视觉测量存在的位姿二义性问题,提出了一种运动重建约束角的二义性消除方法。在相机已标定的前提下,利用圆的投影椭圆曲线确定圆的位姿参数,位姿存在二义性;利用多视图从运动恢复结构方法估计特征点...
  • 主要介绍了Java接口默认方法带来的问题,结合实例形式分析了java接口带来的二义性问题,需要的朋友可以参考下
  • 通过对经典面绘制算法-MC算法的二义性问题进行详尽的分析,分别利用渐近线法和截面测试法消除了算法存在的二义性问题。并提出了考虑算法二义性后的等值面三角化方法。通过在PC机上用C++语言编程实现改进后的算法,实验...
  • 二义性

    千次阅读 2018-08-10 11:29:44
    自然语言的二义性什么意思 面这个问题.很清楚的说明了自然语言的二义性.. 用红墨水写一个“蓝”字,请问,这个字是红字还是蓝字? 可能很少有人意识到,像红字和蓝字这样的词语都存在着二义性。可能是红色的字,也...

    自然语言的二义性什么意思

    面这个问题.很清楚的说明了自然语言的二义性..

    用红墨水写一个“蓝”字,请问,这个字是红字还是蓝字?

    可能很少有人意识到,像红字和蓝字这样的词语都存在着二义性。可能是红色的字,也可能是“红”这个字。

    二义性定义:如果文法G中的某个句子存在不只一棵语法树,则称该句子是二义性的。如果文法含有二义性的句子,则称该文法是二义性的。

    C++中常见的两种二义性问题及其解决方式

    --------------------------------一、“倒三角”二义性问题-------------------------------

    问题描述:卤煮之所以称之为“倒三角问题”,是因为这一类二义性问题所处的继承体系类似于倒三角形状,如图:

    这样,在子类中就存在父类A、B的两份show(),在调用的时候就会出现二义性问题,这种问题该怎么解决呢?

    面对问题:


    //这里的“倒三角”问题二义性怎么解决?即有两个基类共同派生出一个子类,这两个基类中又同时存在相同的功能的时候
    //派生出的子类在调用该功能的时候也会出现二义性问题  这时候该怎么解决?
    //解决方法:利用区域限定符(::)  详细解决方案见实验tempt

    */

    /*
    class grandpa
    {
    public:
        void show()
        {
            cout<<"This is grandpa\n";
        }
    };
    class father
    {
    public:
        void show()
        {
            cout<<"This is father\n";
        }
    };
    class son:virtual public grandpa,virtual public father
    {
    public:
        void display()
        {
            cout<<"This is son\n";
        }
    };
    int main()
    {
        son son;
        son.show();
        son.display();
        cout << "Hello world!" << endl;
        return 0;
    }
    

    //这里的“倒三角”问题二义性怎么解决?即有两个基类共同派生出一个子类,这两个基类中又同时存在相同的功能的时候
    //派生出的子类在调用该功能的时候也会出现二义性问题  这时候该怎么解决?
    //解决方法:利用区域限定符(::)  详细解决方案见实验tempt
    */

    解决方法:区域限定符(::)

    #include <iostream>
    
    using namespace std;
    //下面这种情况出现的二义性怎么解决?
    class grandpa
    {
    public:
        void show()
        {
            cout<<"This is grandpa\n";
        }
    };
    class father
    {
    public:
        void show()
        {
            cout<<"This is father\n";
        }
    };
    class son:virtual public grandpa,virtual public father
    {
    public:
        void display()
        {
            cout<<"This is son\n";
        }
    };
    int main()
    {
        son son;
        son.father::show();//“倒三角”问题出现的二义性利用区域限定符(::)来解决
        son.grandpa::show();
        son.display();
        return 0;
    
    }

    -------------------------------------------二、“恐怖菱形”二义性问题---------------------------------------

    面对问题:
    描述:有最基类A,有A的派生类B、C,又有D同时继承B、C,那么若A中有对象a,那么在派生类B,C中就存在a,又D继承了B,C,那么D中便同时存在B继承A的a和C继承A的a,那么当D的实例调用a的时候就不知道该调用B的a还是C的a,就导致了二义性。

     图示:

     

    解决方案:  虚基类、虚继承
    教科书上面对C++虚基类的描述玄而又玄,名曰“共享继承”,名曰“各派生类的对象共享基类的的一个拷贝”,其实说白了就是解决多重多级继承造成的二义性问题。例如有基类B,从B派生出C和D,然后类F又同时继承了C和D,现在类F的一个对象里面包含了两个基类B的对象,如果F访问自己的从基类B那里继承过来的的数据成员或者函数成员那么编译器就不知道你指的到底是从C那里继承过来的B对象呢还是从D那里继承过来的B对象。

    于是虚基类诞生了,将C和D的继承方式改为虚继承,那么F访问自己从B那里继承过来的成员就不会有二义性问题了,也就是将F对象里的B对象统一为一个,只有一个基类B对象,下面是一段代码说明了对虚基类的使用。

    #iclude <iostream>
    
    using namespace std;
    
    class A
    {
        public:
        int i;
        void showa(){cout<<"i="<<i<<endl;}
    };
    
    class B:virtual public A      //此处采用虚继承
    {
        public:
        int j;
    };
    
    class C:virtual public A      //此处采用虚继承
    {
        public:
        int k;
    };
    
    class D:public B,public C
    {
        public:
        int m;
    };
    int main()
    {
        A a;
        B b;
        C c;
        a.i=1;
        a.showa();
        b.i=2;
        b.showa();
        c.i=3;
        c.showa();
        D d;
        d.i=4;
        d.showa();
        //cout << "Hello world!" << endl;
        return 0;
    }

    从这个代码我们可以看出B,C,D从A那里继承过来了i这个变量并且它们之间不会有任何影响,如果B和C不是虚继承方式的,那么d.i=4;就不能编译通过了。 

     

    展开全文
  • 1.二义性 二义性的定义是:“如果文法G中的某个句子存在不只一棵语法树,则称该句子是二义性的。如果文法含有二义性的句子,则称该文法是二义性的。”(该定义来自于百度百科)用通俗的话讲,如果一句话或者一个...

    1.二义性

           二义性的定义是:“如果文法G中的某个句子存在不只一棵语法树,则称该句子是二义性的。如果文法含有二义性的句子,则称该文法是二义性的。”(该定义来自于百度百科)用通俗的话讲,如果一句话或者一个符号具有两种以上的解释和含义,就说明该话或者符号具有二义性。二义性意味着含义不清和不明确。

           在计算机语言中,如果语言具有二义性,必须消除二义性,才能使程序正常运行。 

    2.C++消除二义性

           C++中消除二义性的过程主要包括:1)重载消除二义性;2)和C语言混编消除二义性;3)多继承消除二义性。

    1)重载消除二义性

           重载是C++等面向对象语言区别于C语言等纯面向过程语言的主要特性之一(随不是面向对象语言的三大特性之一)。泛型编程依赖于重载;作为静态多态的特性也依赖于重载。

           重载之所以能成功,是因为C++通过C++编译器,把同名函数转为不同的函数。也就是说,重载的同名函数,最终还是不同的函数。

           C++编译器在编译的时候,编译的规则如下:把同名函数,如void test() 和  void test(int),分别改为test()或_test 和 test(int) 或_test_int。       

    void test(); //在编译器中改为test() 或 _test
    void test(int); //在编译器中改为test(int) 或 _test_int

           这种改名方法,让C++可以重载同名函数。

           顺便说一下重载的意义:

           1)C++是一种强类型的语言,C++要保证类型的强制性;

           2)C++是一种面向对象语言,面向对象语言要使语言和抽象设计更加符合,和人类实际语言更加贴切;

           3)基于上面两个原则,重载才会存在。

    2)C++和C混编消除二义性

            C++全部兼容了C语言的所有特性,C++是C语言的超集。但C++和C语言混编的时候,会出现各种问题。因为C语言本身不支持重载和多态,C语言的函数不存在改名或者始终是一个函数。这就会造成一个问题,如果C程序和C++混编,存在二义性问题。

           严格来说,C和C++混编的二义性,不是C程序造成的,而是C++对原来的纯C函数进行了改名。改名以后,原来的C程序找不到原来的函数,就会出现问题。

           为了避免该类问题,C++和C程序混编的时候,采用的方法是:C程序编译的时候,采用C语言的规则,并让C++编译器知道这部分程序是C语言的,并用C方法对C程序进行编译。

           使用方法为:使用extern "C"方法,让程序明白采用了C函数。通用规则如下;

            

    #ifdef __cplusplus
    extern "C" {
    #endif
    
    .......
    
    
    
    #ifdef __cplusplus
    }
    #endif

    3)多继承消除二义性

           C++支持多重继承,多重继承带来了便利,也带来了各种麻烦。(与愚蠢的C++(自嘲语,毕竟我靠C++吃饭这么长时间)相比,JAVA就避免了多重继承这个特性,并避免了这个麻烦)

           C++的多重继承问题,最主要体现为菱形继承。即基类被多个衍生类继承,多个衍生类被同一个子类继承。这会继承的子类最后出问题,即某个实体的含义不清楚。

           菱形继承图示如下:

             

          这样的多重继承,在最终类D里,会无法确定成员的含义。

          为了让大家理解多重继承的二义性,举个二义性的样例:

         

    class Grand
    {
    public:
        Grand();
        ~Grand();
    
        void fun();
    };
    
    class FatherA: public Grand
    {
    public:
        FatherA();
        ~FatherA();
    };
    
    class FatherB: public Grand
    {
    public:
        FatherB();
        ~FatherB();
    };
    
    class Son: public FatherA, public FatherB
    {
    public:
        Son();
        ~Son();
    };
    
    int main(int argc, char *argv[])
    {
        Son s;
        s.fun(); //二义性,因为不能确切属于哪个成员
    
        return 0;
    }

           为了消除该二义性,方法如下:

           1)多重继承采用虚继承;

           2)采用 类名称::函数,即作用域加功能方法。

    4.推广

           二义性问题其实在实践中广泛存在,并不仅仅属于C++和编程。这个问题属于任何领域。在工程中,消除任何意义的二义性,显然是一个工程师都应该做的。

    展开全文
  • 在派生类中对基类成员访问应该是唯一的,但是在多继承时,可能会导致对基类某成员访问出现不一致的情况,这就是C++多继承中的二义性。 有两种继承的情况会产生多义性 一、如果一个派生类从多个基类派生,而这些基类...
  • Marching Cube拓扑二义性解决方法改进,孙伟,张彩明,在等值面的三角片逼近中,逼近等值面拓扑结构的正确性十分关键,直接关系到所得到的等值面在应用中的指导意义。原始的Marching Cube��
  • 文法二义性与语言二义性

    千次阅读 2020-12-06 17:12:32
    文法二义性与语言二义性 文法二义性:如果文法G中的某个句子存在不只一棵语法树,则称该句子是二义性的。如果文法含有二义性的句子,则称该文法是二义性的。 语言二义性:对于一个句子,有两种文法可以表示它,称为...

    文法二义性与语言二义性

    文法二义性:如果文法G中的某个句子存在不只一棵语法树,则称该句子是二义性的。如果文法含有二义性的句子,则称该文法是二义性的。

    语言二义性:对于一个句子,有两种文法可以表示它,称为语言二义性

    展开全文
  • 自顶向下文法消除二义性和左递归前言一、自顶向下文法二、自顶向下面临的问题1.二义性问题2.二义性问题解决方案3.左递归问题4.左递归问题解决方案5.回溯问题6.回溯问题解决方案总结 前言 语言是满足一定组成规则的...


    前言

    语言是满足一定组成规则的句子集合,句子是满足一定组成规则的单词序列,单词则是满足一定组成规则的字符串。这些组成规则就是文法中的产生式。
    语法分析(syntax analysis)是编译程序的核心部分,其任务是检查词法分析器输出的单词序列是否是源语言中的句子,亦即是否符合源语言的语法规则。无论是自顶向下还是自底向上,语法分析器都是自左到右地扫描输入单词序列,每次读入一个单词,针对输入单词序列建立一颗语法分析树。

    一、自顶向下文法

    自顶向下语法分析的基本思想:
    从文法的开始符号出发,寻求所给的输入符号串的一个最左推导。即从树根S开始,构造所给输入符号串的语法树。

    例:设有

    G : S → x A y , A → ∗ ∗ ∣ ∗ , 输 入 串 : x ∗ ∗ y G:S→xAy, A→**|*,输入串:x ** y GSxAy,Axy
    则分析为:
    S → x A y → x ∗ ∗ y S→xAy→x**y SxAyxy
    语法树为:语法树


    二、自顶向下面临的问题

    1.二义性问题

    1.1 二义性定义:对于文法G,如果L(G)中存在一个具有两棵或两棵以上分析树的句子,则称G是二义性的。也可以等价地说:如果L(G)中存在一个具有两个或两个以上最左(或最右)推导的句子,则G是二义性文法。

    1.2 二义性问题产生的背景:假设w∈L(G)且w存在两个最左推导,则在对w进行自顶向下的语法分析时,语法分析程序将无法确定采用w的哪个最左推导。则该文法出现二义性问题。

    1.3 二义性问题示例:
    假设有文法G如下:
    G : E → i d ∣ c ∣ E + E ∣ E – E ∣ E ∗ E ∣ E / E ∣ E ∗ ∗ E ∣ ( E ) G: E → id | c | E + E | E – E | E * E | E / E | E **E | (E) G:EidcE+EEEEEE/EEE(E)
    根据文法G对以下句子进行分析:

    i d 1 + c ∗ i d 2 id1 + c * id2 id1+cid2
    则会产生两个不同的语法树:
    语法树一:在这里插入sodas图片描述语法树二:
    在这里插入图片描述

    2.二义性问题解决方案

    解决办法1:改造文法,引入新的文法变量
    将文法G G : E → i d ∣ c ∣ E + E ∣ E – E ∣ E ∗ E ∣ E / E ∣ E ∗ ∗ E ∣ ( E ) G: E → id | c | E + E | E – E | E * E | E / E | E **E | (E) G:EidcE+EEEEEE/EEE(E)
    改造为:

     G:    E → E+T | E-T| T
    		T → T*F | T/F | F
    		F → F↑P | P 
    		P → c | id | (E)  
    

    解决办法2:根据优先级关系,保证高优先级运算符优先的原则。

    3.左递归问题

    3.1 左递归定义:如果存在推导A —> αAβ,则称文法G是递归的,当α=ε时称之为左递归。
    补充:如果A —> αAβ至少需要两步推导,则称文法G是间接递归的,当α=ε时称之为间接左递归;如果文法G中存在形如A —> αAβ的产生式,则称文法G是直接递归的,当α=ε时称之为直接左递归。

    3.2 左递归问题产生的背景:当产生式右部的第一个非终结符为产生式左部的非终结符时,则会产生左递归问题。

    3.3 直接左递归问题示例:
    例:左递归引起的无穷推导问题:

      Ger:	E→E+T   
    		E→T   
    		T→F   
    		T→T*F    
    		F→(E)   
    		F→id 
    

    考虑为输入串id+id*id建立一个最左推导:
    在建立最左推导时,当推导至E或T时,产生左递归,进而引起无穷推导。

    3.4 间接左递归问题示例:
    间接左递归例子:

         S → Ac | c
         A → Bb | b
         B → Sa | a
    

    4.左递归问题解决方案

    4.1 直接左递归解决方案:

    第一步:直接左递归的消除(转换为右递归)
    第二步:引入新的变量A’ ,将左递归产生式A→Aα|β替换为A→βA’ A’ →αA’ |ε
    上述例子按照解决方案解决之后为:

    在这里插入图片描述
    4.2 间接左递归解决方案:

    消除间接左递归的基本思想:1、为语法变量编号;2、再采用带入法将间接左递归变为直接左递归;3、然后采用上述方法来消除直接左递归。
    步骤:

    1.将G的所有语法变量排序(编号),假设排序后的语法变量记为A1,A2,…,An;
    2for i←1 to n {
    3for j←1 to i-1 {
    4.        对每个形如Ai→Ajβ的产生式,其中,Aj→α1|α2||αk是
               所有当前Aj产生式,用产生式Ai→α1β|α2β||αkβ替换
    5}
    6.     消除Ai产生式中的所有直接左递归
    7} 
    

    伪代码解析:
    i=1时,3-5行的循环体不执行,此时执行第6行的消除左递归操作,消除了所有A1变量的直接左递归
    此时,A1的所有的具有A1→Abα形式的产生式,必有b>1。

    再看i=2,A2的右部最左元素是变量的产生式形式可能是A2→A1α | A2β | A3γ|……
    已知,当前的A1的右部最左元素是变量的产生式形式是A1→A2α’ | A3β’|……
    经过第4行的替换操作, A2的所有的具有A2→Abα形式的产生式,必有b>=2。
    执行第6行的消除直接左递归后,A2的所有具有A2→Abα形式的产生式,必有b>2。

    i=3,A3的右部最左元素是变量的产生式形式可能是A3→A1α | A2β | A3γ|……
    已知,当前的A1 的右部最左元素是变量的产生式形式是A1→A2α’ | A3β’|……,
    当前的A2 的右部最左元素是变量的产生式形式是A2→A3α’ | A4β’|……
    经过第4行的替换操作, A3的所有的具有A3Abα形式的产生式,必有b>=3。
    执行第6行的消除直接左递归后,A3的所有具有A3Abα形式的产生式,必有b>3。

    以此类推,i=n,经过第4行的替换操作, An的所有的具有An→Abα形式的产生式,必有b>=n。
    执行第6行的消除直接左递归后,An的所有具有An→Abα形式的产生式,必有b>n。换句话说,已经消除了左递归。

    对上述间接左递归例子的消除步骤详解为:

         S → Ac | c
         A → Bb | b
         B → Sa | a
    

    语法变量排序:B、A、S
    i = 1时,B → Sa | a 无直接左递归;
    i = 2时,A →Bb | b,替换变量B后得到,A→Sab|ab|b;
    i = 3时,S→Ac|c,替换变量A后得到S→Sabc|abc|bc|c;
    然后执行消除直接左递归操作。

    5.回溯问题

    5.1 回溯问题定义:文法中每个语法变量A的产生式右部称为A的候选式。如果A有多个候选式存在公共前缀,则自顶向下的语法分析程序将无法根据当前输入符号准确地选择用于推导的产生式,只能试探。 当试探不成功时就需要退回到上一步推导,看A是否还有其它的候选式,这就是回溯(backtracking)。

    5.2 回溯问题示例
    有以下文法G:

    Ge:	E→T   
        	E→E+T   
    		E→E-T   
     		T→F   
     		T→T*F   
    		T→T/F  
    		F→(E)   
    		F→id 
    

    考虑为输入串id+id*id建立最左推导:
    在推导过程中,因为采用的是自顶向下的语法分析,因此判断E采用E→E-T ,发现不行,则需要进行回溯,直至找到E→E+T产生式。

    6.回溯问题解决方案

    6.1 回溯问题解决思路采用提取左因子的方法来改造文法,以便减少推导过程中回溯现象的发生。当然,单纯通过提取左因子无法彻底避免回溯现象的发生。

    在这里插入图片描述


    总结

    确定的自顶向下分析的文法要求有以下三个:

    1. 无二义性;
    2. 无左递归;
    3. 任意一个语法变量A的各个候选式所能推导出的第一个终结符必须各不相同。
    4. 链接: 编译原理-文法的定义与分类.
    5. 链接: 编译原理-正则文法与正则表达式的相互转化.
    展开全文
  • C++ 二义性是什么?怎么解决?

    万次阅读 多人点赞 2018-08-28 09:33:15
    一、什么是二义性 在多继承的场景里,当父类中存在同名变量时,子类访问父类的同名变量,将出现二义性,因为编译器不知道你将要访问的是哪个父类中的变量。 举个例子: class A { public: int a; // B1,B2 都...
  • 打开 C:\Documents and Settings\Administrator\Application Data\Microsoft\Excel (根据自己的windows用户名),里面应该有一个xlstart文件
  • 文章目录一、二义性1.定义2.原因二、二义性的消除1.改写二义文法为非二义文法(1)步骤(2)例子(3)缺点2.为文法符号规定优先级和结合性 一、二义性 1.定义 定义3.7 若文法G对同一句子产生不止一棵分析树,则称G...
  • 避免二义性的关键在于任何一个字符的编码都不能是另一个字符的编码的前缀 这句话的理解是:任何一个编码不存在包含关系,如001和0011,从左到右,发现0011的前三个数字001和001相同,这就说明001和0001属于包含关系...
  • 2.5.3 文法二义性的消除

    千次阅读 2020-08-05 15:02:38
    2.5.3 文法二义性的消除 (1 )不改变文法中原有的语法规则,仅加进一些语法的非形式规定。 例如,对于上例文法 G [ E ],不改变已有的 4 条规则,仅加进运算符的优先顺序和结合规则,即 * 优先于 + ; + , * 服从左结合。...
  • C++多继承中的二义性问题

    千次阅读 多人点赞 2018-05-24 17:35:46
    在C++中,派生类继承基类,对基类成员的访问应该是确定的、唯一的,但是常常会有以下情况导致访问不一致,产生二义性。 1.在继承时,基类之间、或基类与派生类之间发生成员同名时,将出现对成员访问的不确定性——...
  • 2.5.2 文法的二义性

    千次阅读 2020-08-05 14:45:45
    2.5.2 文法的二义性 设有文法 G [ E ]: E → E + E | E * E | ( E ) | i 句子 i * i + i 有两个不同的最左推导,对应两棵不同的语法树,见图 2.6 和图 2.7 。 最左推导 1 E ⇒ E + E ⇒ E * E + E ⇒ i * E + E ...
  • 编译原理——证明文法的二义性(1)

    千次阅读 2020-11-21 09:40:31
    目录推导和语法树推导语法树文法二义性 在证明文法的二义性之前,我们需要熟悉几个基本的概念。 推导和语法树 推导 这里的推导,简单的来说就是指根据根据给出的句型(句子),对文法进行推理变化最终得到句型(句子...
  • 文法的二义性

    千次阅读 2019-09-02 19:38:48
  • 证明下面的文法是二义的: S→iSeS|iS|i 根据文法的二义性的定义,如果要证明该文法是二义的,必须找到一个句子
  • 常用经验判断:3个连乘和3个连加 在消除二义性文法之后在语法描述中就可能会出现许多冗余状态,没有二义性文法简洁明了,所以考虑利用二义性文法的优势,针对具体的二义性问题给出具体的解决方案,统一的没有办法...
  • C++ 多继承的二义性问题 在多重继承中需要解决的主要问题是标识符不唯一即二义性问题比如 当在派生类继承的多个基类中有同名成员时派生类中就会出现标识符不唯一的情况 在多重继承中派生类由多个基类派生时基类之间...
  • 编译原理——证明文法具有二义性

    万次阅读 多人点赞 2019-12-10 20:14:02
    证明一个文法具有二义性我们需要掌握两个知识点。 1.语法分析树 定义很简单,就是把一个句型的推导写成树的形式,这种表示法就叫语法分析树,或者简称为语法树。大概是这个样子的 2.二义性 一个文法存在某个句子...
  • 继承中的二义性问题

    2019-03-15 09:42:33
    一、调用不同基类的同名成员时可能出现二义性 class A { public: void setA(int a); int get(); private: int a; } ; class B { public: void setB(int b); int get(); private:...
  • 多继承的二义性

    千次阅读 2018-10-08 09:45:22
    多继承的二义性主要分为两种: 调用不同基类的同名成员时可能出现二义性 访问共同基类的成员可能出现二义性 1、调用不同基类的同名成员时可能出现二义性 class A { public: void setA(int a); int get(); .....
  • 二义性文法的理解和消除方法

    千次阅读 2019-11-24 21:15:48
    给定文法G,如果存在句子s,它有两棵不同的分析树,那么称G是二义性文法 从编译器角度,二义性文法存在问题: 同一个程序会有不同的含义 因此程序运行的结果不是唯一的 一个句子有多于一棵分析树,仅与文法和句子...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,493
精华内容 60,597
关键字:

二义性