3 词法结构

3.1 Unicode

  • Java编程语言的文本是使用UTF-16编码机制。即Java编译器编译的对象就是UTF-16字符流,Java虚拟机运行时字符和字符串都是用的UTF-16编码。

3.2 词法翻译

  • 原始的Unicode字符流会翻译为符号序列,翻译过程有三个过程。
  1. 将Unicode转移字符转换为相应Unicode字符。Unicode转移字符的形式为\uxxxx,其中xxxx是十六进制数。\uxxxx表示的是编码为xxxx的UTF-16码元。
  2. 将步骤1产生的Unicode流翻译成由输入字符(InputCharacter)和行终止符(LineTerminator)构成的流。
  3. 将步骤2产生的流翻译成输入元素构成的序列,输入元素由符号构成,为句法的的终结符。摒弃了空白和注释。
    步骤1中我的理解:
    1.UnicodeInputCharacter流
    2.将UnicodeEscape转换为RawInputCharacte
    3.RawInputCharacter流

3.3 Unicode转义字符

UnicodeInputCharacter:
UnicodeEscape
RawInputCharacter

UnicodeEscape:
UnicodeMarker HexDigit HexDigit HexDigit HexDigit

UnicodeMarker:
 u{u}

HexDigit: one of
 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F

RawInputCharacter:
 any Unicode character

3.4 行终止符

LineTerminator:
 the ASCII LF character, also known as "newline"
 the ASCII CR character, also known as "return"
 the ASCII CR character followed by the ASCII LF character

InputCharacter:
UnicodeInputCharacter but not CR or LF

3.5 输入元素和符号

输入元素(InputElement)去掉注释(Comment)和空白(WhiteSpace)就是符号(Token),符号是句法的终结符。

Input:
 {InputElement} [Sub]

InputElement:
WhiteSpace
Comment
Token

Token:
Identifier
KeyWord
Literal
Separator
Operator

Sub:
 the ASCII SUB character, also known as "control-Z"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://...
    Palomar阅读 1,609评论 0 6
  • 在Mac开始学习perl 用的书是 Perl 语言入门 浏览脚本之家 1环境配置 一开始学,只有一本书,不知道如何...
    小郑的学习笔记阅读 477评论 0 2
  • 《高效能人士的七个习惯》感悟(一) 缘由 最近在看《高效能人士的七个习惯》。一开始看这本书我是拒绝的,因为一看到书...
    hoohack阅读 2,662评论 0 4
  • 《你就是孩子最好的玩具》 r情感引导有什么用 - 认知和表达自己的情绪 - 更快地从自己的负面情绪中走出来 - 增...
    ART修真觉知阅读 279评论 0 0
  • 耀眼, 光洁的幕墙 反射了太多的光线。 听不清语言, 繁华的街市 充斥了太多的嚣喧。 窒息, 漂亮的高楼 遮住了明...
    Z0001阅读 235评论 0 1