+ 4
How compiler recognise the single line comments?
As the compliers ignores blank space & new lines (unless it is \n, endl or semicolon ( ; ). I am confused how does the compiler recognise the single line comment. for ex. in the below code - { // cout<<"Hello" cout<<"World"; } above program will only print "world". but how does the compiler know where the first line ends, because it is said that compiler ignores blank spaces & new line unless it is semicolon (;)
5 Réponses
+ 4
For a standard c or c++ compiler the process of converting the source code into an executable file, is done in multiple steps by multiple components. In order: preprocessor, compiler, assembler, then linker.
The preprocessor replaces all the #include and #define statements with the correct code.
The compiler uses this adjusted code as it's source. Note the preprocessor statements are line operated.
Normally the preprocessor will replace the comments with a space. So the compiler never sees the comments at all.
+ 10
The job of the compiler is to take that source file (cpp file), check it line by line for possible syntax errors, and transform it into a corresponding sequence of machine-level instructions. This is why the compiler is able to identify error on specific line. In this process, single-line/multi-line comments are also identified.
+ 6
Yeah. Compiler have something called parser which is a routine that analyse your code and based on pre-defined grammar (written by compiler designer) identify different elements of language such as evaluating the variable name to see it begins with a letter or underscore and not a number.
+ 4
I built a compiler for one of my classes at University. The way compilers work is in three stages.
1) A lexical analyzer determines what components are in the code
2) A syntax tree is created
3) Machine code is generated from this tree
A single line comment will be caught as "\\" and the section between this and the "\n" newline escape is determined to be a comment by the Lexical Analyzer. Here it will be filtered out before it reaches the second stage.
+ 3
I think we can rephrase it as *no effect* instead of *ignore* as the compiler still read the code line-by-line. (that's why we have both single & multi-line comments)
So essentially if you're going to compress the entire program into a one-liner, the single line comment wouldn't work in this case. 😉