Table of Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Notes DownloadECMA-334 C# Language Specification 9 Lexical structure 9.1 Programs
Paragraph 11 A C# program consists of one or more source files, known formally as compilation units (§16.1). 2 A source file is an ordered sequence of Unicode characters. 3 Source files typically have a one-to-one correspondence with files in a file system, but this correspondence is not required.
Paragraph 21 Conceptually speaking, a program is compiled using three steps: 2 1 Transformation, which converts a file from a particular character repertoire and encoding scheme into a sequence of Unicode characters. 3 2 Lexical analysis, which translates a stream of Unicode input characters into a stream of tokens. 4 3 Syntactic analysis, which translates the stream of tokens into executable code.
Paragraph 31 Conforming implementations must accept Unicode source files encoded with the UTF-8 encoding form (as defined by the Unicode standard), and transform them into a sequence of Unicode characters. 2 Implementations may choose to accept and transform additional character encoding schemes (such as UTF-16, UTF-32, or non-Unicode character mappings). [Note: It is beyond the scope of this standard to define how a file using a character representation other than Unicode might be transformed into a sequence of Unicode characters. During such transformation, however, it is recommended that the usual line-separating character (or sequence) in the other character set be translated to the two-character sequence consisting of the Unicode carriage-return character followed by Unicode line-feed character. For the most part this transformation will have no visible effects; however, it will affect the interpretation of verbatim string literal tokens (§188.8.131.52). The purpose of this recommendation is to allow a verbatim string literal to produce the same character sequence when its source file is moved between systems that support differing non-Unicode character sets, in particular, those using differing character sequences for line-separation. end note]
|Jagger Software Ltd|
|Company # 4070126|
|VAT # 762 5213 42|