语法糖(Syntactic sugar )

https://en.wikipedia.org/wiki/Syntactic_sugar

In computer sciencesyntactic sugar is syntax within a programming language that is designed to make things easier to read or to express. It makes the language "sweeter" for human use: things can be expressed more clearly, more concisely, or in an alternative style that some may prefer.

For example, many programming languages provide special syntax for referencing and updating array elements. Abstractly, an array reference is a procedure of two arguments: an array and a subscript vector, which could be expressed as get_array(Array, vector(i,j)). Instead, many languages provide syntax like Array[i,j]. Similarly an array element update is a procedure of three arguments, something like set_array(Array, vector(i,j), value), but many languages provide syntax like Array[i,j] = value.

Specifically, a construct in a language is called syntactic sugar if it can be removed from the language without any effect on what the language can do:functionality and expressive power will remain the same.

Language processors, including compilersstatic analyzers, and the like, often expand sugared constructs into more fundamental constructs before processing, a process sometimes called "desugaring".

https://zh.wikipedia.org/wiki/语法糖

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

语法糖的例子[编辑]

for循环[编辑]

一个例子是C语言中的for循环:

for (i = 0; i < 10; i++)
{
  //P
}

其效果和以下的while循环是一样的,其中P是循环要处理的主体。

i = 0;
while (i < 10)
{
  //P
  i++;
}

中置表示法[编辑]

Haskell虽然是函数编程语言,但它提供了a + b这种“中置表示法”的语法,让程式更容易撰写,也比较容易阅读。

Lua[编辑]

Lua中,一个变量的赋值方法如下:

foo = "bar"

而一个函数,作为基本类型之一,语法与定义变量的方法基本一致:

foo = function()
    print "bar"
end

但是此种写法对于有其他编程语言背景的人来说不够直观,故Lua提供了如下的语法糖:

function foo()
    print "bar"
end

它与上述方法效果完全一样,但是更加紧凑和易于理解。

衍生词语[编辑]

语法糖精(Syntactic saccharin)是由语法糖衍生的词语,是设计失败的语法糖,设计上无法方便程序员使用[1][2] 。

参见[编辑]

  • 语法盐:和语法糖相反,有意使书写代码更加困难以避免人为疏失产生错误的语法

参考资料[编辑]

  1. ^ syntactic sugar. catb.org. [3 August 2015].
  2. ^ Mathematics of Program Construction. google.com. [3 August 2015].

分类

时间: 2024-10-06 04:35:37

语法糖(Syntactic sugar )的相关文章

语法糖(Syntactic sugar)

语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法.语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读.不过其并没有给语言添加什么新东西. 也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用.通常来说,使用语法糖能够增加程序的可读性,减少程序

究竟什么是语法糖呢

其实语法糖只是一个概念,大家可能很早就在接触语法糖了,只是一直不知道这个就是语法糖 百科原话:语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法.语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读.不过其并没有给语言添加什么新东西. 这里有两点需要注意的: 1语法糖的目的:是为了让代码更

什么是语法糖

1.    定义 在计算机科学中,语法糖(syntactic sugar)是指编程语言中可以更容易的表达一个操作的语法,它可以使程序员更加容易去使用这门语言:操作可以变得更加清晰.方便,或者更加符合程序员的编程习惯. 语法糖是语言中的一个构件,当去掉该构件后,并不影响语言的功能和表达能力. 简而言之,语法糖是一种便捷写法 2.    好处 使用语法糖,让我们写的代码更简单,看起来也更容易理解 原文地址:https://www.cnblogs.com/baxianhua/p/9772863.htm

C#语法糖(Csharp Syntactic sugar)大汇总

首先需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕不已,呵呵. 1.  经过简化的Property 早些时候我们这样声明Property 1 2 3 4 5 6 7 8 9 10 11 private string _myName; public string MyName {     get { return _myName; }     set { _myName

C#常用語法糖(Csharp Syntactic sugar)

首先需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕不已,呵呵. 1.  经过简化的Property 早些时候我们这样声明Property private string _myName; public string MyName { get { return _myName; } set { _myName = value; } 千篇一律的这样声明,没有多大意义,于是C

深入理解java虚拟机(十二) Java 语法糖背后的真相

语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这些语法糖虽然不会对语言的功能产生任何影响,却能使程序员更方便的使用语言开发程序,同时增强程序代码的可读性,避免出错的机会.但是如果只是大量添加和使用语法糖,却不去了解他,容易产生过度依赖,从而无法看清语法糖的糖衣背后,程序代码的真实面目. 总而言之,语法糖可以看做是编译器实现的一些"小把戏",这些"小

语法糖

语法糖 是 设计用來让事物变得容易读 的程序语言的语法, 使得语言 更 接近 人类, 因为事物 能被表达得更清晰 更简洁, 或者在其他特定的风格上更让人喜欢. 语法糖 getArray(Arr, vector(i, j)) 非语法糖 Arr[i, j] 语法糖 setArray(Arr, vector(i, j), value) 非语法糖 Arr[i, j] = value 如果一个结构 能被移除且不带副作用 也能叫 语法糖. why a[i] is syntactic sugar for *(

Java语法糖1:可变长度参数

先抄一段定义: 语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用.Java 中最常用的语法糖主要有泛型.变长参数.条件编译.自动拆装箱.内部类等.虚拟机并不支持这些语法,它们在编译阶段就被还原回了简单的基础语法结构,这个过程成为解语法糖. 简而言之就是语法糖就是为了方便编程,但不影响语言本身功能的情况下做的一种语法处理.虽然没有对语言本身有

【转载】游戏并发编程的讨论 &amp; Nodejs并发性讨论 &amp; 语法糖术语

知乎上这篇文章对于游戏后端.性能并发.nodejs及scala等语言的讨论,很好,值得好好看. https://www.zhihu.com/question/21971645 经常了解一些牛逼技术人员的分享,比闭门造车或者停留在陈旧技术固步自封,要好多了. 下面是一些摘录: 用C++开发,1000并发是基本. C++的优点是与硬件近,所以处理图形时速度快很多, 如果是处理业务,其实主要是看选用的算法的时间复杂度. 各语言之间的执行效率差别没那么大,同样用过C++跟JAVA,相比较的话JAVA的学