当前位置:  开发笔记 > 编程语言 > 正文

在编程方面,语义是什么意思?

如何解决《在编程方面,语义是什么意思?》经验,为你挑选了4个好方法。

这是Eric Lippert博客的一句话:

鉴于这种不幸的情况,首先强调存储机制,然后再强调语义是有道理的 .

很容易得到字典定义 "语义"的意思,但它在计算机术语方面意味着什么?



1> Konrad Rudol..:

但就计算机术语而言,它意味着什么?

基本上是一样的.例:

x = 5;

以上是语法(表示).这个术语的含义(即语义)是将值5赋给一个被称为的符号(变量,无论如何)x.不同的语言提供不同的语法来提供相同的语义.例如,上面的赋值将被写为

x := 5;

在Pascal,和

x <- 5

用其他几种语言.在所有情况下,含义基本相同.但有时,相同的语法也可能具有不同的含义,具体取决于语言和/或上下文.例如,VB将equals运算符重新定义为两个不同的东西.首先是一项任务,如上所述.

其次,在下面的代码片段中,它不是分配,而是采用比较两个值的含义:

If x = 5 Then Console.WriteLine("x is 5")


不确定这个答案是否与理查德发布的博客文章有关(尚未阅读),但如果这个答案涉及到这个问题,那么"在编程方面,语义是什么意思?" 然后我会说你的答案简洁而令人满意.

2> Instance Hun..:

字典定义适用.

语义是(是?)所有关于词的含义.

例如,如果使用.NET类型KeyValuePair来表示除键和值之外的其他内容,则会出现语义问题.它可能有用......它可能是最好的解决方案,但它在语义上并不准确.

这正是他在博客文章中所谈论的内容.我们首先用C语言列出返回类型,但实际上返回是最后的.这在语义上是不准确的.



3> Peter Perháč..:

语义是我们的意思,程序应该做什么.Sytax是我们如何表达语义的语言特定约束.

理论上,只要程序的语义是正确的,使用什么语言编写它就没关系.



4> Norman Ramse..:

就编程语言术语而言,有几种语义概念:

静态语义告诉您哪些语法程序也格式正确。许多语言要么没有静态语义(方案,Ruby,Python,Icon,Lua,Perl),要么具有主要与实现类型系统有关的静态语义(Java,C,C#,Haskell)。“使用前需要声明”是另一种可能的静态语义。静态语义回答问题“ 该程序有意义吗? ”,并且在编译时会这样做。

动态语义告诉您以下两件事之一:

鉴于程序是有意义的,它的含义是什么? 含义已经以许多不同的方式在数学上进行了定义。经典的动态语义可能会定义程序输入和程序输出之间的函数(或关系)。含义功能(“名词语义”)由Dana Scott和Christopher Strachey率先提出;含义关系(“公理语义”)由Tony Hoare提出。斯科特(Scott)和霍尔(Hoare)荣获图灵奖;斯特拉奇可能会,但他死得很早。入门的好方法是阅读Tony Hoare的《计算机科学随笔》

鉴于程序是有意义的,执行时它将如何表现?。这种语义通常称为“操作语义”,它描述了某种抽象机器上程序的执行。同样,有很多很多的品种。如今,操作语义已成为首选工具,因为存在强大的证明技术,因此,例如,使用操作语义可以证明托管代码中永远不会出现内存错误。罗宾·米尔纳得到了在用来描述或并发多线程程序(CCS和演算)不同的操作技术部分图灵奖。如果您跳过证明,他在1999年出版的有关通信和移动系统的书也是很好的读物:-)

如果您在手册或文章中读到“语义”一词,并且上下文是非正式的英语而不是精确的数学描述,那么作者可能指的是动态操作行为-如果您愿意,则是对操作语义的非正式描述。这种非正式的描述对于编译器作者和程序员可能非常有帮助。

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有