编译原理—词法分析

词法分析(Lexical Analysis),又称单词扫描(Tokenizing),是编译器在编译源代码时的一个过程。该过程将源代码分解成为一系列的词素(Token),词素是源程序中一个最小的、有意义的语法单位。

Java 编译器对源代码进行词法分析时,会把源代码拆分为一个个词素。一个词素通常包括一个标识符(Identifier)或关键字(Keyword)、一个运算符(Operator)、一个界符(Delimiter)或者一个常量(Const)。
例如,考虑下面这段 Java 代码:

public class Main {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 5;
        int sum = num1 + num2;
        System.out.println("The sum is: " + sum);
    }
}

在词法分析的过程中,Java 编译器将该代码分解为下面这些词素:

KEYWORD: public
KEYWORD: class
IDENTIFIER: Main
LEFT_BRACE: {
KEYWORD: public
KEYWORD: static
KEYWORD: void
IDENTIFIER: main
LEFT_PAREN: (
KEYWORD: String
LEFT_BRACKET: [
RIGHT_BRACKET: ]
IDENTIFIER: args
RIGHT_PAREN: )
LEFT_BRACE: {
KEYWORD: int
IDENTIFIER: num1
ASSIGNMENT: =
NUMERIC_LITERAL: 10
SEMICOLON: ;
KEYWORD: int
IDENTIFIER: num2
ASSIGNMENT: =
NUMERIC_LITERAL: 5
SEMICOLON: ;
KEYWORD: int
IDENTIFIER: sum
ASSIGNMENT: =
IDENTIFIER: num1
ARITHMETIC_OPERATOR: +
IDENTIFIER: num2
SEMICOLON: ;
IDENTIFIER: System
DOT: .
IDENTIFIER: out
DOT: .
IDENTIFIER: println
LEFT_PAREN: (
STRING_LITERAL: "The sum is: "
ARITHMETIC_OPERATOR: +
IDENTIFIER: sum
RIGHT_PAREN: )
SEMICOLON: ;
RIGHT_BRACE: }
RIGHT_BRACE: }

在这个例子中,编译器将源代码分解为了多个词素,这些词素都是有效的语言单元,包括关键字、标识符、运算符、界定符以及常量。词法分析是将源代码抽象为词素,便于后续的语法分析和代码转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值