- 浏览: 3052777 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
C# Annotated Standard的第78页上有一段关于C# 2.0的语法二义性的描述和解释。
其中提到一个所谓FGAB的例子:
没有特殊规定的话,这个语句可以被解释为两种意思:
1、F是一个接受两个bool型参数的方法,而这里的两个实参分别是G<A和B>(7);
2、F是一个接受一个参数的方法,参数类型与G的返回值类型匹配;G则是带有两个泛型参数的、接受一个形式参数的方法,这里泛型参数分别是A和B,实际参数是7。
为了解决这个二义性,ECMA-334 C# 4th Edition里有这样的规定:如果一串token可以被解析为以type-argument-list结束的simple-name、member-access、pointer-member-access,则紧接着结束的>的token会被检验。如果是:
的其中一个,那么type-argument-list就属于simple-name、member-access、pointer-member-access的一部分,其它可能的解析方式都无效。反之则type-argument-list不属于前面的simple-name、member-access、pointer-member-access的一部分,即使没有任何其它有效的解析方式。
(同一段规定在微软的C# 3.0规范的7.5.4.2小节里也有。)
也就是说前面的
应该被解析为第二种解释,而:
应该被解析为第一种解释。
C# Annotated Standard一书中对这个规定有详细的解释,为什么要选定这组token作为特殊规定的对象呢——通过合理的follow set来消除二义性。详细还是直接读书吧,这里就不说了。
不过书中给的一个相关例子很明显已经过时了。这里例子与规范里用的FGAB例子相似,说以下代码用微软.NET和Mono的C#编译器无法编译:
用微软的C# 2.0编译器来编译确实是无法通过:
但那都是几年前的编译器了啊……用去年出的C# 3.0编译器就没问题:
用最近发布的Mono 2.0.1也一样没问题。其中的mcs:
用gmcs:
其中提到一个所谓FGAB的例子:
引用
F(G<A, B>(7));
没有特殊规定的话,这个语句可以被解释为两种意思:
1、F是一个接受两个bool型参数的方法,而这里的两个实参分别是G<A和B>(7);
2、F是一个接受一个参数的方法,参数类型与G的返回值类型匹配;G则是带有两个泛型参数的、接受一个形式参数的方法,这里泛型参数分别是A和B,实际参数是7。
为了解决这个二义性,ECMA-334 C# 4th Edition里有这样的规定:如果一串token可以被解析为以type-argument-list结束的simple-name、member-access、pointer-member-access,则紧接着结束的>的token会被检验。如果是:
( } ] : ; , . ? == !=
的其中一个,那么type-argument-list就属于simple-name、member-access、pointer-member-access的一部分,其它可能的解析方式都无效。反之则type-argument-list不属于前面的simple-name、member-access、pointer-member-access的一部分,即使没有任何其它有效的解析方式。
(同一段规定在微软的C# 3.0规范的7.5.4.2小节里也有。)
也就是说前面的
F(G<A, B>(7));
应该被解析为第二种解释,而:
F(G<A, B>7);
应该被解析为第一种解释。
C# Annotated Standard一书中对这个规定有详细的解释,为什么要选定这组token作为特殊规定的对象呢——通过合理的follow set来消除二义性。详细还是直接读书吧,这里就不说了。
不过书中给的一个相关例子很明显已经过时了。这里例子与规范里用的FGAB例子相似,说以下代码用微软.NET和Mono的C#编译器无法编译:
Peter Golde 写道
public class ShouldCompile { public static void Main( string[ ] args ) { int G = 1, A = 2, B = 2; int blah = F( G<A, B>>7 ); } public static int F( bool b, int i ) { return 42; } }
用微软的C# 2.0编译器来编译确实是无法通过:
引用
D:\experiment>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc fgab.cs
Microsoft (R) Visual C# 2005 编译器 版本 8.00.50727.3053
用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
版权所有(C) Microsoft Corporation 2001-2005。保留所有权利。
fgab.cs(4,25): error CS0246: 找不到类型或命名空间名称“A”(是否缺少 using
指令或程序集引用?)
fgab.cs(4,28): error CS0246: 找不到类型或命名空间名称“B”(是否缺少 using
指令或程序集引用?)
fgab.cs(4,23): error CS0307: 变量“G”不能与类型参数一起使用
Microsoft (R) Visual C# 2005 编译器 版本 8.00.50727.3053
用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
版权所有(C) Microsoft Corporation 2001-2005。保留所有权利。
fgab.cs(4,25): error CS0246: 找不到类型或命名空间名称“A”(是否缺少 using
指令或程序集引用?)
fgab.cs(4,28): error CS0246: 找不到类型或命名空间名称“B”(是否缺少 using
指令或程序集引用?)
fgab.cs(4,23): error CS0307: 变量“G”不能与类型参数一起使用
但那都是几年前的编译器了啊……用去年出的C# 3.0编译器就没问题:
引用
D:\experiment>C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc fgab.cs
适用于 Microsoft(R) .NET Framework 3.5 版的 Microsoft(R) Visual C# 2008 编译器 3.5.30729.1版
版权所有(C) Microsoft Corporation。保留所有权利。
适用于 Microsoft(R) .NET Framework 3.5 版的 Microsoft(R) Visual C# 2008 编译器 3.5.30729.1版
版权所有(C) Microsoft Corporation。保留所有权利。
用最近发布的Mono 2.0.1也一样没问题。其中的mcs:
引用
D:\experiment>mcs fgab.cs
fgab.cs(4,13): warning CS0219: The variable `blah' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
fgab.cs(4,13): warning CS0219: The variable `blah' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
用gmcs:
引用
D:\experiment>gmcs fgab.cs
fgab.cs(4,13): warning CS0219: The variable `blah' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
fgab.cs(4,13): warning CS0219: The variable `blah' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
发表评论
-
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22408(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对象的重量
2011-08-21 17:15 0http://domino.research.ibm.com/ ... -
GetCustomAttribute()每次都返回新Attribute实例
2009-11-10 10:30 0Jeffrey Zhao: 一次失败的尝试(上):原来GetC ... -
委托与方法和隐藏参数
2009-09-07 15:32 3311之前正好发了些帖子是关于CLR里的委托的,然后看到老赵说事件也 ... -
要让CLR挂掉的话(第二弹)……
2009-09-04 03:26 12879(Disclaimer:如果需要转 ... -
要让CLR挂掉的话……
2009-09-02 16:53 4784(Disclaimer:如果需要转载请先与我联系。 作者:Re ... -
趣味编程:函数式链表的快速排序
2009-08-31 08:53 3450(恢复自2009-08-28的备份 ... -
事件处理器导致内存泄漏
2009-08-25 15:03 0Memory leak via event handlers ... -
C# 3.0的类型推导
2009-08-23 12:24 0Howard Dierking: Lambda, Lambda ... -
把lock的意思给弄混了 T T
2009-08-20 17:49 2603悲剧啊……前几天有个同学不停问我Java里的同步问题,今天写C ... -
把IEnumerable<T>和IObservable<T>粘起来?
2009-07-23 03:02 0Channel 9: Expert to Expert: Br ... -
Scott Peterson: Variance, Thy Name is Ambiguity
2009-07-01 23:49 1639原文作者:Scott Peterson 原文地址:http:/ ... -
void无法协变
2009-06-30 11:17 0Eric Lippert The void is invari ... -
同一个表达式算出来的浮点数结果会不相等?
2009-05-30 03:27 0浮点数有很多可把玩的地方。例如下面这段C程序: #includ ... -
C#开始默认引用Microsoft.CSharp.dll
2009-05-20 16:14 0记得VB6的运行时么?留意到VB.NET的程序都需要额外的VB ... -
反射与显式实现接口的方法
2009-05-20 11:43 4063在前一帖里,我用到了下面三处Expression.Call() ... -
看到一个关于ref参数与多态的问题,记一下
2009-05-18 10:48 1944刚才读到Alan McGovern的一帖,问为什么形式参数是r ... -
C#的+=运算符两例
2009-05-06 18:18 2040刚偶尔看到了justjavac写的java解惑 - 半斤八两( ...
相关推荐
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代
内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
系统可以提供信息显示和相应服务,其管理新冠抗原自测平台小程序信息,查看新冠抗原自测平台小程序信息,管理新冠抗原自测平台小程序。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
新建 文本文档.docx
hw06
3. Kafka入门-安装与基本命令
燃气管道施工资质和特种设备安装改造维修委托函.docx
AI大模型研究相关报告
lab02
仅供学习使用,其他用途请购买正版资源AVPro Video Core Windows Edition 2.2.3 亲测可用的视频播放插件,能丝滑播放透明视频等.
建设工程消防验收现场指导意见表.docx
MVIMG_20241222_194113.jpg
五相电机双闭环矢量控制模型_采用邻近四矢量SVPWM_MATLAB_Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成; (2)输出部分仿真波形及仿真说明文档; (3)完整版仿真模型:包括邻近四矢量SVPWM模型和完整双闭环矢量控制Simulink模型; 资料介绍过程十分详细,零基础手把手教学,资料已经写的很清楚
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7