语言的递归性及其根源
语言的递归性及其根源

语言的递归性及其根源钱冠连(广东外语外贸大学外国语言学及应用语言学研究中心,广州 510420)摘要:(1)递归性不仅是转换生成语法中的一种语法属性,而且它与任意性、线性一样是语言的根本性质之一。
(2)作者给出了语言递归性的定义:语言结构层次和言语生成中相同结构成分的重复或相套。
(3)作者着重论证了语言递归性,阐述了整个语言结构和言语的生成处于相同结构的重复与层层相套之中,分析了语言整体上的递归性与局部上的非递归性,并指出这二者的必要性:整体上的递归性避免了句式集合的庞大与复杂的危险,使句式有限而简单;局部的非递归性使语言在有限手段之内变得丰富起来。
语言递归性的巨大意义甚至是全部意义就在于允许人们用少量的句型生成无限多的句子。
(4)语言的递归性的根源在世界(宇宙)的递归结构与语言的递归结构处于全息状态之中。
关键词:递归;语言递归性;全息On Recursiveness of Language and Its OriginQIAN Guanlian(Center for Linguistics,Guangdong University of Foreign Studies,Guangzhou 510420)Abstract: In Part 1, the author points out that, recursiveness of language should not only be a grammatical attribute restricted to the transformational -generative grammar, but also be an essential property of language on a par with arbitrariness and linear nature of language. In Part 2, the author proposes that recursiveness of language could be defined as the reiteration or the embedded state of the same frames and elements in the structures of language as well as in the process of utterance generation. Part 3 is to give the argumentation on recursiveness of language. The gigantic significance of recursiveness of language lies in that it allows people to generate infinitely many sentences with a small number of sentence patterns. Finally, the author argues that the rootstock of recursiveness of language be that the recursive structure of the cosmos and the recursive structure of language are in a holographic state.Key words: recursion; recursiveness of language; holographics本文明确地将语言的递归性(recursiveness) ,像语言的任意性与线性一样,作为语言的根本性质之一来对待,然后着重论述,语言递归性的根源来自它的结构与宇宙的结构是全息关系。
c语言中的递归

c语言中的递归递归是编程语言中常用的一种技术,它在C语言中也得到了广泛的应用。
递归可以理解为一种函数调用自身的方法,通过递归,我们可以简化一些问题的解决过程,提高代码的可读性和简洁性。
本文将探讨C语言中递归的基本概念、用法以及一些递归应用的实例。
一、递归的基本概念递归的本质是将原问题拆解为同类子问题,并且每个子问题的解决过程和原问题的解决过程相同。
递归函数可以通过调用自身来解决问题,每次调用的参数不断缩小,直到问题达到终止条件,递归函数开始回溯。
递归函数一般包括两个部分:基线条件和递归条件。
基线条件是递归终止的条件,递归条件是问题继续拆解的条件。
二、递归的用法递归函数在C语言中的使用非常简单。
首先,我们需要定义一个带有递归调用的函数。
在函数体内,我们需要判断基线条件,如果满足基线条件,则返回结果;如果不满足,则调用自身,并缩小参数范围,直到满足基线条件为止。
递归函数的调用过程类似于栈的操作,每次调用都将函数压入栈中,直到函数返回时再弹出栈顶元素。
三、递归的实际应用1. 阶乘函数阶乘函数是递归函数的一个典型示例。
阶乘函数可以定义为:n的阶乘等于n乘以(n-1)的阶乘。
在C语言中,可以通过递归实现阶乘函数,如下所示:```int factorial(int n) {if (n == 1) {return 1;} else {return n * factorial(n - 1);}}```2. 斐波那契数列斐波那契数列是指从0和1开始,后面的每一项都等于前面两项的和。
在C语言中,可以通过递归实现斐波那契数列的计算,如下所示:```int fibonacci(int n) {if (n == 0) {return 0;} else if (n == 1) {return 1;} else {return fibonacci(n - 1) + fibonacci(n - 2);}}```3. 文件夹遍历递归在文件夹遍历中也有广泛应用。
C语言的递归函数原理和应用场景

C语言的递归函数原理和应用场景递归是编程中一种强大而常用的技巧,尤其在C语言中,递归函数被广泛应用。
递归函数是指在函数体内调用函数本身的一种函数形式。
通过不断调用自身,递归函数能够解决一些需要重复执行的任务,使得代码更加简洁、易读、易于理解。
一、递归函数的原理递归函数的原理可以通过以下步骤来理解:1. 基本条件:递归函数中需要有一个基本条件,当满足这个条件时,递归函数将不再调用自身,结束递归。
2. 自调用:在递归函数体中,通过函数自身的调用来实现重复执行的效果。
3. 函数参数:递归函数在每次调用自身时,往往会传入不同的参数,这些参数可以决定递归的结束条件或下一次递归的运算逻辑。
4. 递归调用:递归函数在函数体内部通过调用自身来实现循环执行的效果。
二、递归函数的应用场景递归函数在编程中有许多实际应用场景,下面列举了一些常见的应用场景来说明递归函数的实用性。
1. 阶乘计算:递归函数可以非常方便地求解阶乘。
例如,对于n的阶乘可以表示为n! = n * (n-1)!,其中(n-1)!可以通过递归函数来计算。
2. 斐波那契数列:斐波那契数列是一个经典的递归问题。
数列中的每个数都是前两个数的和,即fib(n) = fib(n-1) + fib(n-2)。
通过递归函数可以很容易地计算出斐波那契数列的值。
3. 文件系统遍历:递归函数可以用来遍历文件系统中的目录结构。
通过递归调用函数来进入子目录,逐层遍历文件和文件夹,实现对整个文件系统的扫描。
4. 数据结构操作:递归函数也可以用于对各种数据结构的操作。
比如,针对树形结构的遍历、查找等操作,递归函数能够更加简洁地实现。
5. 图算法:在图算法中,递归函数常用于深度优先搜索(DFS)的实现。
通过递归调用函数,可以遍历图的各个节点,查找目标节点,或者找到所有可能的路径。
总结:递归函数是一种基于函数自身调用的编程技巧,通过重复调用自身,递归函数能够解决一些需要重复执行的任务。
试论语言的递归性及其根源

试论语言的递归性及其根源[摘要] 递归性是语言的根本性质之一,与线性、任意性一样作为语言的根本性质之一,因此,通过语言的递归性及其根源的研究,能够更有机制、更合理地掌握人类语言系统的特点。
本文章主要通过:(1)递归性的定义;(2)递归性的主要类型;(3)递归性的根源,通过这三个内容试论,总结递归性的重要性及其意义。
[关键词] 递归;语言的递归性 ; 语言无限的创造性一、语言的递归性的定义关于递归性的定义,许多学家都给出大同小异的观点。
叶蜚声、徐通锵都认为“同样的结构可以层层嵌套,借用数学的术语来说,这就是结构规则有递归性”。
而钱冠连认为“语言的递归性就是语言结构层次和言语生成中相同结构成分的重复或相套。
”这一观点广泛地被诸多学者所接纳和采用。
这两个观点虽然在表达上有所差别,但是其实质内涵是一样的,他们都认为语言的递归性就是“层层嵌套”和“相同结构的重复”。
运用钱冠连教授的比喻是“语言的递归性像中国的套盒式的结构。
”这一比喻十分形象地描述出递归性的特点。
在《语言学教程》这一教程上,给语言的递归性下的定义是递归性是能体现出许多语言学现象的涵盖性术语。
在我看来,通俗、简单的说法是递归性是运用人类有限的词汇与固定的语法规则,通过语言的递归性自由组合成无限的句子,因此,递归性赋予了预言的无限创造性,让说话人可以创造出从未听过或者是讲过的话。
二、语言的递归性的主要类型在关于递归性的类型方面的研究,许多学家都提出不同的观点。
钱冠连教授则认为递归分为序列并列递归与序列从属递归,其中并列递归还可以有顺序并列于同为并列的情形。
他还把集中点放在语篇中分析,认为递归现象并不能处处能实现,但如果在一个很大的语篇中,递归结构出现的可能性则会变得非常之大,因此他将递归性分成整体上的递归性和局部上的不递归,整体上的递归性避免了句式集合庞大和复杂的危险,使句式有限而简单,而局部上的不递归是语言在有限的手段之内变得丰富,针对此论点他列举出三个典型的递归性句式:(1)相同结构相套的递归句式:The man who kicked the ball scored the goal that won the game.此类的句式,在生活中十分普遍,如:The flower that named rose that symbolized love.从此例中也能窥探出,语言的递归性的特点:即赋予了语言无限的创造性。
c语言的递归

c语言的递归递归,作为一种编程技巧和思维方式,是计算机科学中一个重要的概念。
在C语言中,递归可以被广泛应用于各种算法和问题的解决过程中。
本文将介绍C语言中递归的基本原理、优缺点以及一些常见的递归应用场景。
一、递归的基本原理递归是指在一个函数的定义中调用函数本身的过程。
在C语言中,递归函数的定义通常包括两个部分:基准情况(base case)和递归情况(recursive case)。
基准情况是指满足特定条件时递归停止,递归情况则是通过不断调用函数本身来实现问题的拆解和解决。
下面是一个简单的例子,演示了如何使用递归来实现计算n的阶乘:```cint factorial(int n) {// 基准情况if (n == 0 || n == 1) {return 1;}// 递归情况return n * factorial(n - 1);}int main() {int n = 5;int result = factorial(n);printf("%d的阶乘是:%d\n", n, result);return 0;}```在上面的代码中,当n等于0或者1时,递归停止,返回结果1。
否则,函数将n与factorial(n-1)相乘,并返回结果。
通过逐步拆解n的值,直到满足基准情况,递归函数可以完成阶乘的计算。
二、递归的优缺点递归在解决某些问题时可以提供简洁、优雅的解决方案,但同时也存在一些缺点。
1. 优点:简洁清晰:递归能够将问题分解为更小的子问题,代码结构更加清晰易懂。
解决复杂问题:某些问题如果采用迭代的方式来解决会非常复杂,而递归提供了一种更加直观的解决思路。
2. 缺点:性能开销:递归往往需要调用函数本身多次,会产生额外的函数调用开销,导致性能下降。
内存占用:递归的过程中需要保存每一次函数调用的上下文,可能会导致内存占用较大。
三、递归的应用场景递归可以用于解决一些常见的问题和算法,比如树的遍历、图的搜索、排列组合等。
编程语言中的递归方法解析

编程语言中的递归方法解析在计算机编程中,递归是一种重要的方法,它允许程序通过调用自身来解决问题。
递归在算法设计和实现中起着重要的作用,它能够简化问题的解决过程,提高代码的可读性和可维护性。
本文将深入探讨编程语言中的递归方法,探索其原理、应用和一些常见的注意事项。
一、递归的原理递归是一种自我调用的方法,它将问题划分为更小的子问题,并通过解决子问题来解决原始问题。
递归方法通常包含两个部分:基本情况和递归情况。
基本情况是指问题的最小规模,它通常是递归方法的终止条件。
递归情况是指将问题分解为更小规模的子问题,并通过递归调用解决这些子问题。
递归方法的实现通常使用函数或过程的形式。
在函数式编程语言中,递归方法是一种常见的编程范式。
例如,在Lisp和Scheme等语言中,递归是一种基本的控制结构,用于解决各种问题。
二、递归方法的应用递归方法在许多领域中都有广泛的应用。
其中一个常见的应用是计算数列中的斐波那契数列。
斐波那契数列是一个无限序列,其中每个数字都是前两个数字的和。
通过递归方法可以轻松地计算斐波那契数列的第n个数字。
另一个常见的应用是树的遍历。
树是一种常见的数据结构,它由节点和边组成。
通过递归方法可以遍历树的所有节点,从而实现对树的操作和分析。
递归方法还可以用于解决复杂的数学问题,如计算阶乘、排列组合等。
通过递归方法,可以将这些问题简化为更小规模的子问题,从而提高解决问题的效率。
三、递归方法的注意事项尽管递归方法具有许多优点,但在使用时也需要注意一些问题。
首先,递归方法可能会导致堆栈溢出。
每次递归调用都会将一些信息存储在堆栈中,如果递归调用的层数过多,堆栈可能会超出其容量,导致程序崩溃。
因此,在使用递归方法时,需要确保递归的深度不会过大,或者使用尾递归等优化方法来减少堆栈的使用。
另一个需要注意的问题是递归方法的性能。
由于递归方法涉及多次函数调用和堆栈操作,它可能比迭代方法更慢。
在某些情况下,可以使用迭代方法或其他更高效的算法来替代递归方法。
C语言递归函数递归的原理和应用场景

C语言递归函数递归的原理和应用场景递归函数是指在函数的定义中调用函数本身的一种方式。
通过递归函数,可以实现对问题的逐级拆分与求解,便于理解和编码。
本文将介绍C语言递归函数的原理和一些常见的应用场景。
一、递归函数的原理递归函数的原理基于分治法,将原问题不断分解为更小规模的子问题,直到满足某个递归终止条件,然后通过逐级返回求解出整个问题。
递归函数通常具有以下结构:1. 基线条件(递归终止条件):判断是否满足递归的结束条件,当满足条件时,递归不再继续,直接返回结果。
2. 递归条件:由于递归是调用函数本身,需要满足某个条件时才执行递归调用,将问题规模缩小一步,继续求解更小规模的子问题。
3. 递归调用:在函数体内部直接调用函数本身,将问题规模不断缩小,直到满足基线条件。
二、递归函数的应用场景1. 阶乘计算:阶乘是指对于非负整数n,将其与前面所有的正整数相乘。
使用递归函数可以轻松实现阶乘的计算。
例如,计算n的阶乘可以通过函数调用factorial(n)来实现,其中factorial(n)表示计算n的阶乘。
```c#include <stdio.h>int factorial(int n) {if (n == 0 || n == 1) {return 1; // 基线条件} else {return n * factorial(n - 1); // 递归调用}}int main() {int n = 5;int result = factorial(n);printf("%d的阶乘为:%d\n", n, result);return 0;}```2. 斐波那契数列:斐波那契数列是指前两个数为1,之后的每个数都是前两个数之和。
递归函数可以简洁地实现斐波那契数列的计算。
例如,计算斐波那契数列的第n个数可以通过函数调用fibonacci(n)来实现,其中fibonacci(n)表示计算第n个斐波那契数。
语言的递归性及其根源

语言的递归性及其根源钱冠连(广东外语外贸大学外国语言学及应用语言学研究中心,广州510420)摘要:(1)递归性不仅是转换生成语法中的一种语法属性,而且它与任意性、线性一样是语言的根本性质之一。
(2)作者给出了语言递归性的定义:语言结构层次和言语生成中相同结构成分的重复或相套。
(3)作者着重论证了语言递归性,阐述了整个语言结构和言语的生成处于相同结构的重复与层层相套之中,分析了语言整体上的递归性与局部上的非递归性,并指出这二者的必要性:整体上的递归性避免了句式集合的庞大与复杂的危险,使句式有限而简单;局部的非递归性使语言在有限手段之内变得丰富起来。
语言递归性的巨大意义甚至是全部意义就在于允许人们用少量的句型生成无限多的句子。
(4)语言的递归性的根源在世界(宇宙)的递归结构与语言的递归结构处于全息状态之中。
关键词:递归;语言递归性;全息On Recursiveness of Language and Its OriginQIAN Guanlian(Center for Linguistics,Guangdong University of Foreign Studies,Guangzhou 510420)Abstract: In Part 1, the author points out that, recursiveness of language should not only be a grammatical attribute restricted to the transformational -generative grammar, but also be an essential property of language on a par with arbitrariness and linear nature of language. In Part 2, the author proposes that recursiveness of language could be defined as the reiteration or the embedded state of the same frames and elements in the structures of language as well as in the process of utterance generation. Part 3 is to give the argumentation on recursiveness of language. The gigantic significance of recursiveness of language lies in that it allows people to generate infinitely many sentences with a small number of sentence patterns. Finally, the author argues that the rootstock of recursiveness of language be that the recursive structure of the cosmos and the recursive structure of language are in a holographic state.Key words: recursion; recursiveness of language; holographics本文明确地将语言的递归性(recursiveness) ,像语言的任意性与线性一样,作为语言的根本性质之一来对待,然后着重论述,语言递归性的根源来自它的结构与宇宙的结构是全息关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语言的递归性及其根源钱冠连(广东外语外贸大学外国语言学及应用语言学研究中心,广州510420)摘要:(1)递归性不仅是转换生成语法中的一种语法属性,而且它与任意性、线性一样是语言的根本性质之一。
(2)作者给出了语言递归性的定义:语言结构层次和言语生成中相同结构成分的重复或相套。
(3)作者着重论证了语言递归性,阐述了整个语言结构和言语的生成处于相同结构的重复与层层相套之中,分析了语言整体上的递归性与局部上的非递归性,并指出这二者的必要性:整体上的递归性避免了句式集合的庞大与复杂的危险,使句式有限而简单;局部的非递归性使语言在有限手段之内变得丰富起来。
语言递归性的巨大意义甚至是全部意义就在于允许人们用少量的句型生成无限多的句子。
(4)语言的递归性的根源在世界(宇宙)的递归结构与语言的递归结构处于全息状态之中。
关键词:递归;语言递归性;全息On Recursiveness of Language and Its OriginQIAN Guanlian(Center for Linguistics,Guangdong University of Foreign Studies,Guangzhou 510420)Abstract: In Part 1, the author points out that, recursiveness of language should not only be a grammatical attribute restricted to the transformational -generative grammar, but also be an essential property of language on a par with arbitrariness and linear nature of language. In Part 2, the author proposes that recursiveness of language could be defined as the reiteration or the embedded state of the same frames and elements in the structures of language as well as in the process of utterance generation. Part 3 is to give the argumentation on recursiveness of language. The gigantic significance of recursiveness of language lies in that it allows people to generate infinitely many sentences with a small number of sentence patterns. Finally, the author argues that the rootstock of recursiveness of language be that the recursive structure of the cosmos and the recursive structure of language are in a holographic state.Key words: recursion; recursiveness of language; holographics本文明确地将语言的递归性(recursiveness) ,像语言的任意性与线性一样,作为语言的根本性质之一来对待,然后着重论述,语言递归性的根源来自它的结构与宇宙的结构是全息关系。
1. 理论引入国外相关文献提及语言使用中的递归现象时,仅仅把它当成为转换生成语法的一种语法属性,这种属性在在扩展规则中把初始符号S作为任选成份引导进来,用这种方法允许生成无限多的句子,因此也就允许无数次地应用以前的规则(Burt, M. K 1971; Elson B. and Pickett V.B. 1965; Fowler R. 1971 )。
这表明,国外语言学家尚未明确地将递归性作为语言的一个根本性质来处理。
国内理论语言学文献中,尚未提及语言的递归性,更不消说把它当成语言的一个根本性质来对待了。
Chomsky 在多处指出了“递归机制”(recursi ve devices, Chom sky 1957: 24)、“递归过程”(recursive processes, Chomsky 1957:23f)、“递归方面”(the recursive aspect, Chomsky Introduction to Functionary Grammar 175, 172)、“递归时态系统”(the recursive tense system, Chomsky Introducti on to Functionary Grammar 176f),大致上是把递归性当成转换生成语法的一种语法属性。
他(1957:24)指出,“如果一种语法没有递归机制(封闭的环形圈……),它就会复杂得难以想象。
如果它确实有某种递归机制,就会产生无限多的句子。
”这里,他已经把产生无限多的句子的能力、语法的简单性与递归机制联系了起来,这无疑具有深刻的意义。
他(1957:23f)认为,“语言是无限的这一假设可以将这样的描写(允许语法具有递归机制以产生无限多的句子)加以简化。
”“因此,生成语法必须是一个能反复生成无限数量的结构的规则系统。
”(1965:16)。
他在另一个地方进一步指出,“从这个方面看,一套语法映射了能够产生并理解无限多的新句子的说话人的行为。
而且,有了一种语言的知识就暗含了必有这样的能力。
”(1957:15;1965:15)这个概念据说抓住了所有语言具有的创造性的一面:“这些语言提供了这样的手段,即表达无限多的思想以及在无限多的变换情景中总能做出适当的反应的手段。
” (1965 ATv, 5)应该说,这段极其重要的叙述(“这些语言提供了这样的手段,即表达无限多的思想以及在无限多的变换情景中总能做出适当的反应的手段”)本身已经表明了这是语言的一个基本性质,令人困惑的是,他却没有点明语言的这一基本性质和递归机制之间有直接联系。
另外,他认为,“The technical devices for expressi ng a system of recursive processes, as developed in mathematics, not only account for sequences longer than any ever before produced, but offer an explicit formulation of creative processes.”(Chomsky 1965:8; 1957:17n)。
总之,Chomsky在这几处所阐述的思想是:人为什么能够用有限的手段说出无限多的句子?原因就在于语言有某种递归机制。
关于什么是递归机制,什么是语言的递归性(重复了层层相套的结构),我们将在下面阐明。
Chomsky(1965)用语言能力(competence)代替索绪尔的语言(langue),用语言行为(performance)来代替索绪尔的言语(parole)。
语言能力是说话人掌握的底层规则系统,语言行为是对规则的具体运用。
Chomsky批评语索绪尔说,他“把语言看作是具有语法特点的符号仓库,就是说这个仓库里类似词汇的成份,固定词组,也许还有类似词组的东西。
这样,他就无法解决组成句子时的递归过程。
他似乎把构成句子看作是言语而不是语言,是自由、任意的创造,而不是有系统的规则。
在索氏的体系中,没有提及日常运用语言时所涉及到的…受规则制约的创造性'。
”索氏缺少一个概念,即受规则制约的创造性。
在规则系统之中仍然允许个人的创造。
可以建立几条有限规则,来生成无限多的句子。
做到这一点并非很困难。
只要有几条递归规则(recursive rule),反复运用,则可得到关系从句修饰名词的众多的句子。
(参见刘润清1997:110-111)这最后一点论述,虽然不是对递归性的概括,却也能从中得到不少提示。
例如:递归性的规则是个什么样的规则?这个规则为何能反复运用?本文的第三部分“递归性的论证”中,一个长句子的形成就是受到乔氏的启发。
Jef Verscheren曾注意到语言的递归现象。
在讨论隐含意义时(Jef Verscheren 1999:26),他指出,背景信息在一定程度上必须假设为说话人与解释人所共有。
这样的假设涉及到一些递归的与相互内嵌句式(recursive and mutual embedding)。
说到这里,他所举出的例子是:I know that you know that I know, etc. 我们知道,这样的句式,是典型的递归句式之一,也是典型的“中国套盒”式结构(见下),即相同结构(somebody knows that)的重复。
在另外一处讨论说话人的多种表达时(Jef Verscheren1999:80),他指出了一种情形,即书面语篇中,话语的复杂模式是嵌入主要的话语之中的。
他说在他的这本书中,一段“话语”的简单定义是:由同一个(些)人所生成的、有着相对分明的开头与结尾的一个语篇延伸。
这样,一段话语可能是谈话中的一个话轮,或者也可以是一个1000页的三部曲。
三部曲包含了无数的由主要说话人(即三部曲的作者)所提供的内嵌式话语(embedded utterances )。
这些内嵌式话语的提供者也便成了内嵌式说话人(embedded utterer)。
不消说,这样一个内嵌式说话人也可能以多种表达方式说话。
他指出,这种情形表达了一个完整结构的可能递归性(the possible recursiveness of the entire structure)。
对于这段叙述,我的理解是:一个语篇,首先是作者的话语,然后,作品中又内嵌了许许多多人物的话语,即他所谓的“内嵌式话语”。
这些内嵌式话语的结构都是相同的。
这就构成了一个完整结构内的话语递归性。
总而言之,是主要说话人引用了另外的说话人(“内嵌式说话人”),话语中套着话语(“内嵌式话语”)。
但是,我在这里需要指出的是:问题不在话中套话,而在于所套的那些话语反复使用了相同的结构,重复了层层相套的结构(如果这些结构不是相同的,如何能层层相套?)。
用英语表述就是to repeat embedded structures.国外的系统功能语法学家在讨论阶-范畴的复杂性时介绍了递归性。