tag:blogger.com,1999:blog-22985514616352897322024-02-21T02:58:13.749-08:00Compiler Designs and PrinciplesCompiler Designs, Compiler Principles, Compiler ToolsEneshttp://www.blogger.com/profile/08300637012280992574noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-2298551461635289732.post-31627752192691044072010-05-14T17:09:00.000-07:002010-05-20T18:12:56.578-07:00Wanting to Hire or Rent a Camera?It’s another day at the office, doing SEO and coding stuff. The busy ambiance of the place made my head ache like hell. The suddenly out of nowhere, came out my officemate. He begun talking all of a sudden and showed his new camera that he bought yesterday with his girlfriend. In the past we were discussing about them (my friend and his girlfriend) starting a new business, a film studio. This friend of mind is a photography fanatic. He loves on taking pictures and videos (note: pictures of his girl). He would take pictures and made slide shows on that and upload it on youtube.<br /><br />He’s new camera, <a href="http://www.camerent.co.uk/camera_hire/canon/Canon_EOS_1000D.html">Canon EOS 1000D</a>, then I said “Wow!”, I envy him. They want to start a new business because they were inspired once, when our company hired a <a href="http://www.camerent.co.uk/camera_hire/">Camera Hire</a>. My friend was amazed by their equipment, including a <a href="http://www.camerent.co.uk/video_camera_hire/sony/Sony_HVR_Z1E.html">Sony HVR-Z1E</a>. We enjoyed doing the set for the company anniversary video.<br /><br />My friend told me, “I got to have those Sony cameras! And start my own new <a href="http://www.camerent.co.uk/camera_hire/">Sony camera hire </a>Studio”. I think he would succeed on that, because he’s just too hard working. I think I can be a part of that, I can be a photo shoot model, or a camera man, or just an assistant, lol.<br /><br />I've been also dreaming of having a camera. I want to take pictures of nude woman. I was inspired by these one photographer, Dave Naz (if you want to know him more, just Google his name). I really like his photographs with all those beautiful women. I'm also fan of taking panoramic views; I love nature, especially underwater. I think that would be an expensive photography. My favorite diving photography spot where I want to take pictures, the Tubbataha reef, it's in the Philippines. Although the most popular reef on earth is the Great Barrier, I prefer the Tubbataha, why is that, It's near our place.<br /><br />Maybe It will take years before my dream of becoming a photographer cam true, and I'm hoping I'll have that dream.Eneshttp://www.blogger.com/profile/08300637012280992574noreply@blogger.com0tag:blogger.com,1999:blog-2298551461635289732.post-80471462237970750402008-08-03T15:03:00.000-07:002008-08-03T15:33:45.117-07:00Exercise Postfix..Prefix..InfixI) Infix to Prefix Notation Translation for Expressions<br />• Translation defined inductively as: Prefix(E) where E is an expression<br /><br />1) If E is a variable or constant then Prefix(E)=E<br />2) If E is E1 op E2 then Prefix (E) = Prefix (E1 op E2) = op Prefix (E1) Prefix (E2)<br />3) If E is (E1) then Prefix(E1) = Prefix(E1)<br /><br />Example:<br /><br />Infix A*B+C/D to Prefix +*AB/CD<br /><br />Prefix ((A*B)+(C/D))<br />+ prefix(A*B) prefix (C/D)<br />+* prefix (A) prefix (B) / prefix (C) prefix (D)<br />Ans: +*AB/CD<br /><br />II a)Prefix to Infix<br /><br />• Translation defined inductively as: Prefix(E) where E is an expression<br /><br />1) If E is a variable or constant then Infix(E)=E<br />2) If E is E1 op E2 then Infix (E) = Infix (op E1 E2) = Infix (E1) op Infix (E2)<br />3) If E is (E1) then Infix(E1) = Infix(E1)<br /><br />Example:<br />Infix( - ( / A B ) (* C D) )<br />= ( Infix ( / A B ) - Infix( * C D ) )<br />= ( ( Infix (A) * Infix (B) ) - ( ( Infix (C) / Infix (D) )<br />Ans: ( ( A / B ) - ( C * D ) )<br />II b). Postfix to Infix<br />1) If E is a variable then Infix(E) = E<br />2) If E is E1 E2 op then Infix(E) = Infix(E1 E2 op) = Infix (E1) op Infix (E2)<br />3) If E is (E1) then Infix(E) = Infix (E1)<br />Example:<br />Infix( ( A B + ) C + )<br />= ( Infix(A) + Infix(B) ) + Infix(C)<br />Ans: ( A + B ) + C<br /><br /><br />III) Postfix to Prefix Notation Translation for Expressions<br />• Translation defined inductively as: Prefix(E) where E is an expression<br /><br />1) If E is a variable or constant then Prefix(E)=E<br />2) If E is E1 op E2 then Prefix (E) = Prefix (E1 E2 op) = op Prefix (E1) Prefix (E2)<br />3) If E is (E1) then Prefix(E1) = Prefix(E1)<br /><br />Example:<br />a) From Postfix((AB*)(CD/)+)<br />Prefix ((AB*)(CD/)+)<br />= + Prefix((AB*)) Prefix((CD/))<br />= + Prefix(AB*) Prefix(CD/)<br />= + * Prefix (A) Prefix (B) / Prefix (C) Prefix (D)<br /><br />Ans: + * AB / CD or (+(*AB)(/CD))Eneshttp://www.blogger.com/profile/08300637012280992574noreply@blogger.com2tag:blogger.com,1999:blog-2298551461635289732.post-39115414212694803712008-07-22T20:02:00.000-07:002008-07-22T20:30:54.673-07:00Chapter 2 Exercises<strong>2.1 Consider the following context-free grammar</strong><br /><br />S -> S S + S S * a<br /><br />a. show how the string aa+a* can be generated by this grammar.<br /><br /> ans: S -> SS*<br /> Sa*<br /> SS+ a *<br /> a a + a *<br /><br />b. Constuct a parse tree for this string<br /><br /> ans:<br /> S<br /> / \<br /> S S *<br /> / \ <br /> S S + a<br /> <br /> a a<br /><br />c. What language is generated by this grammar? Justify you answer<br /> <br /> ans: The language defined by this grammar consists of two (2) consecutive <strong>a</strong> separated by plus and minus signs.<br /><br /><br /><strong>2.2 What language is generated by the following grammar? In each case justify you answer.</strong><br /><br />a. S -> 0 S 1 0 1<br /><br /> The language that is generated by this gramma is compose of digits number one (1) and zero (0).<br /><br /><br />b. S -> + S S - S S a<br /><br /> The language that is generated by this grammar is compose of <strong>a's</strong> separated by plus and minus signs.<br /><br />c. S -> S ( S ) S є<br /><br /> The language that is generated by this grammar is compose of <strong>є</strong>.<br /><br />d. S -> a S b S b S a S є<br /><br /> The language that is generated by this grammar is compose of<strong> a</strong>, <strong>b</strong>, and <strong>є.</strong><br /><br /><br />e. S -> a S + S S S S * ( S )<br /><br /> The language that is generated by this grammar is compose of infinite consecutive <strong>S</strong> with <strong>plus </strong>(+) and <strong>*</strong> signs.<br /><br />2.3Eneshttp://www.blogger.com/profile/08300637012280992574noreply@blogger.com0tag:blogger.com,1999:blog-2298551461635289732.post-29937112095232146672008-07-01T20:21:00.000-07:002008-07-01T20:22:27.469-07:00Group Mini-Project I<h2 style="text-align: center;" align="center">ICS 40 Compiler Design Principles </h2> <h2 style="text-align: center;" align="center">Group Mini-Project I<br /><br />LEXICAL ANALYSIS </h2> <p style="margin-bottom: 12pt; text-align: center;" align="center"><i><span style="font-size: 14pt;">Handed out: July 2, 2008</span></i><span style="font-size: 14pt;"> <br /> <!--[if !supportLineBreakNewLine]--><br /> <!--[endif]--><o:p></o:p></span></p> <h3>PURPOSE</h3> <p style="text-align: justify;">As a first step in the compiler project you are to develop a lexical analyzer for a mini-programming language, MINI-L (<i>adapted from Aho, Sethi & Ullman, 1986</i>), using the Jflex scanner generator (<i>Klien, 2004</i>). The lexical analyzer should take as input a source program written in MINI-L, and it should return the tokens in the input stream. Information about identifiers found should be also written into a symbol table. The lexical analyzer should also create a listing file, giving line numbers and error messages. When an error is encountered, the lexical analyzer should indicate it by a message. </p> <h3>TOKEN SPECIFICATION</h3> <p style="text-align: justify;">In MINI-L a comment is introduced by ``<span style="font-family: "Courier New";">--</span>'' and goes to the end of the line. All tokens are separated by blanks, tabs, newlines, delimiters, operators or comments. A valid identifier begins with a letter and may be followed by additional letters, digits or underscores.</p> <p style="text-align: justify;">The tokens and the information that should be returned are summarized in the attached table. If the token is a reserved word, a delimiter or an operator, then a scalar should be returned indicating that token. For instance, for the character string ``beginprogram'', the scalar BEGPROGSYM is returned. If the token is an identifier, 2 items are returned: IDENTIFIER as token number and the character string of the identifier. If the token is an integer constant, then beside the scalar indicating the token to be a constant, the numerical value should be returned.</p> <h3>MATERIAL TO BE HANDED IN</h3> <p style="text-align: justify;">On the due date, you are to submit both printed and softcopies of the: (a) Jflex specification (defining the MINI-L token set), (b) Java source code of the analyzer (generated by Jflex), (c) Java byte code of the lexical analyzer (compiled by Javac), and (d) test results (use attached sample MINI-L program) as part of the DOCUMENTATION of your mini-project.</p> <p style="text-align: justify;">You will also be required to DISCUSS and DEMONSTRATE your project in class.</p> <div style="border-style: solid none; border-color: windowtext -moz-use-text-color; border-width: 1pt medium; padding: 1pt 0in;"> <p style="border: medium none ; padding: 0in; text-align: center;" align="center"><span style="font-size: 16pt;">This mini-project is due on: Midterm Exam Week<o:p></o:p></span></p> </div> <p style="text-align: justify;"><o:p> </o:p></p> <table class="MsoNormalTable" style="" align="left" border="1" cellpadding="0"> <tbody><tr style=""> <td colspan="4" style="border: medium none ; padding: 0.75pt;"> <h3 style="text-align: center;" align="center"><span style="font-size: 10pt;">MINI-L TOKEN TABLE<o:p></o:p></span></h3> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10pt;">TOKEN<o:p></o:p></span></b></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10pt;">SYMBOL<o:p></o:p></span></b></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10pt;">VALUE<o:p></o:p></span></b></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10pt;">STRING<o:p></o:p></span></b></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">identifier<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">IDENTIFIER<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">name<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">Integer constant<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">NUMBER<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">value<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">program<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">PROGSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">beginprogram<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">BEGPROGSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">endprogram<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">ENDPROGSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">array<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">ARRAYSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">of<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">OFSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">integer<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">INTSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">if<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">IFSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">then<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">THENSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">else<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">ELSESYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">endif<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">ENDIFSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">while<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">WHILESYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">loop<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">LOOPSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">endloop<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">ENDLOOPSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">read<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">READSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">write<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">WRITESYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">eof<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">EOFSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">not<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">NOTSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">and<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">ANDSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">or<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">ORSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">true<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">TRUESYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">false<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">FALSESYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">;<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">SEMISYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">,<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">COMMASYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">:<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">COLONSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">:=<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">ASSIGNSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">=<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">EQUALSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">(<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">LPARSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">)<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">RPARSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;"><><o:p> </o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">NOTEQSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;"><<o:p> </o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">LTSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">><o:p> </o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">GTSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;"><=<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">LESYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">>=<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">GESYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">+<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">PLUSSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">MINUSSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">*<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">TIMESSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> <tr style=""> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">/<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">DIVSYM<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt;">-<o:p></o:p></span></p> </td> </tr> </tbody></table> <p><o:p> </o:p></p> <span style="font-size: 12pt; font-family: "Times New Roman";"><br /> </span> <p><o:p> </o:p></p> <h3>MINI-L EXAMPLE</h3> <p>Below is an example that shows a sample program and the output of the lexical analyzer</p> <pre>SAMPLE PROGRAM</pre><pre>--------------</pre><pre style="margin-left: 0.25in;">-- This program prints the even numbers from 0 .. 10</pre><pre style="margin-left: 0.25in;">program even;</pre><pre style="margin-left: 0.25in;">i : integer;</pre><pre style="margin-left: 0.25in;">beginprogram</pre><pre style="margin-left: 0.25in;"><span style=""> </span>i:=0;</pre><pre style="margin-left: 0.25in;"><span style=""> </span>while i <= 10 loop</pre><pre style="margin-left: 0.25in;"><span style=""> </span>write i;</pre><pre style="margin-left: 0.25in;"><span style=""> </span>i := i + 2;</pre><pre style="margin-left: 0.25in;"><span style=""> </span>endloop;</pre><pre style="margin-left: 0.25in;">endprogram</pre><pre><o:p> </o:p></pre><pre>OUTPUT OF LEXICAL ANALYZER</pre><pre>--------------------------</pre><pre style="margin-left: 0.25in;">PROGSYM</pre><pre style="margin-left: 0.25in;">IDENTIFIER even</pre><pre style="margin-left: 0.25in;">SEMISYM</pre><pre style="margin-left: 0.25in;">IDENTIFIER i</pre><pre style="margin-left: 0.25in;">COLONSYM</pre><pre style="margin-left: 0.25in;">INTSYM</pre><pre style="margin-left: 0.25in;">SEMISYM</pre><pre style="margin-left: 0.25in;">BEGPROGSYM</pre><pre style="margin-left: 0.25in;">IDENTIFIER i</pre><pre style="margin-left: 0.25in;">ASSIGNSYM</pre><pre style="margin-left: 0.25in;">NUMBER 0</pre><pre style="margin-left: 0.25in;">SEMISYM</pre><pre style="margin-left: 0.25in;">WHILESYM</pre><pre style="margin-left: 0.25in;">IDENTIFIER i</pre><pre style="margin-left: 0.25in;">LESYM</pre><pre style="margin-left: 0.25in;">NUMBER 10</pre><pre style="margin-left: 0.25in;">LOOPSYM</pre><pre style="margin-left: 0.25in;">WRITESYM</pre><pre style="margin-left: 0.25in;">IDENTIFIER i</pre><pre style="margin-left: 0.25in;">SEMISYM</pre><pre style="margin-left: 0.25in;">IDENTIFIER i</pre><pre style="margin-left: 0.25in;">ASSIGNSYM</pre><pre style="margin-left: 0.25in;">IDENTIFIER i</pre><pre style="margin-left: 0.25in;">PLUSSYM</pre><pre style="margin-left: 0.25in;">NUMBER 2</pre><pre style="margin-left: 0.25in;">SEMISYM</pre><pre style="margin-left: 0.25in;">ENDLOOPSYM</pre><pre style="margin-left: 0.25in;">SEMISYM</pre><pre style="margin-left: 0.25in;">ENDPROGSYM</pre>Eneshttp://www.blogger.com/profile/08300637012280992574noreply@blogger.com0tag:blogger.com,1999:blog-2298551461635289732.post-458002763634349192008-06-24T20:23:00.000-07:002008-07-01T20:15:23.207-07:00Phases of a Compiler<div>A compiler is a computer program that translate text written in a computer language into another.<br /><br />The compiler has a number of phases and symbol table manager and an error handler.<br /><br />The Phases of the compiler are:<br /><br />1. Input source program<br />2. Lexical analyzer<br />3. Syntax Analyzer<br />4. Semantic Analyzer<br />5. Intermediate code generator<br />6. Code Optimizer<br />7. Code Generator<br />8. Target Program<br /><br />Symbol Table System - An essential function of a compiler is to record the identifiers used in the source program and collect information about various attributes of each identifier.<br /><br />Error Detection - each phase can encounter errors. After detecting an errors, a phase must somehow deal with that errors, so that compilation can proceed, allowing further errors in the source program to be detected.<br /></div>Eneshttp://www.blogger.com/profile/08300637012280992574noreply@blogger.com0tag:blogger.com,1999:blog-2298551461635289732.post-26925765307082987932008-06-24T19:50:00.000-07:002008-06-24T20:09:20.748-07:00Team OS members!<div align="justify">Our team is compose of 4th year computer science students. Namely, Andrei G. Macabale, Earl V. Diez, and Algen Rejie L. Dela Cruz. The purpose of this blog is to discuss topics about compilers, its design and principles.</div><div align="center"> </div><div align="center"> </div><div align="center"> </div><div align="center"> </div><div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHeSYoogN3vvtNQxPAYBfgPn0-jcR5yiev_UIUMpyaTEfb8xVa0IhnMVZP8Y37wzyqVL-w9Tqz1jOnbKW03Trz33CzSlbcDl1HyJCzpB0W0nNpDe8vKLIjGtP_Sutk2oPX27T_Q9jeplfc/s1600-h/algen.jpg"><img id="BLOGGER_PHOTO_ID_5215650378489344754" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHeSYoogN3vvtNQxPAYBfgPn0-jcR5yiev_UIUMpyaTEfb8xVa0IhnMVZP8Y37wzyqVL-w9Tqz1jOnbKW03Trz33CzSlbcDl1HyJCzpB0W0nNpDe8vKLIjGtP_Sutk2oPX27T_Q9jeplfc/s320/algen.jpg" border="0" /></a><span style="color:#33ccff;">Algen Rejie L. Dela Cruz</span> </div><br /><br /><div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMQ638juYZLoxoWtozmvNZxwCQ-C8PNtNrvQWVAqruNV9teBAUfIEKZzw7_F3nwfmETS2wwyap2jIGwUaQQHywK2S6OKUhm30d6A7-MNFi8Gc31LNHqnZH5lfUSDkBMNO4nhaJZhdwlKFx/s1600-h/earl.jpg"><img id="BLOGGER_PHOTO_ID_5215649285169919874" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMQ638juYZLoxoWtozmvNZxwCQ-C8PNtNrvQWVAqruNV9teBAUfIEKZzw7_F3nwfmETS2wwyap2jIGwUaQQHywK2S6OKUhm30d6A7-MNFi8Gc31LNHqnZH5lfUSDkBMNO4nhaJZhdwlKFx/s320/earl.jpg" border="0" /></a><span style="color:#ff0000;"> Earl V. Diez</span></div><br /><br /><br /><br /><br /><div align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRIP63s93UyIoYPCOZY1ghDYc62cTPZhVtuRQBUTSYn0WsLUTNjN6o2D1hlSr2pNyuir8X1glJtTItu5_nqp_ehxiMtfTIS-B0nNz7t1C_beK64l2xUnp4Ev0tOcZUcgwla1RZKbDuuwlm/s1600-h/astang.jpg"><img id="BLOGGER_PHOTO_ID_5215648826748302274" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRIP63s93UyIoYPCOZY1ghDYc62cTPZhVtuRQBUTSYn0WsLUTNjN6o2D1hlSr2pNyuir8X1glJtTItu5_nqp_ehxiMtfTIS-B0nNz7t1C_beK64l2xUnp4Ev0tOcZUcgwla1RZKbDuuwlm/s320/astang.jpg" border="0" /></a><span style="color:#33cc00;"> Andrei G. Macabale</span><br /><div><div> </div></div></div>Eneshttp://www.blogger.com/profile/08300637012280992574noreply@blogger.com1