Lexical Analysis
It have 4 type :
1. Number
2. Identifier
3. Operator
4. Parenthsis
Each of type have our rule
Nubmer :
It must have only 0 - 9 and e or E. And it can been minus valus
E or e are show the power of number such as 3e4 is 3x10^4
Indentifier :
It have a special rule.
1. It must begin by a - z , A - z or _
2. Next charactor can been a - z , A - z , 0 - 9 and _
3. It mustn't reserved word.
4. And don't have speacial charactor
Operator :
Operator Name --> Operators
Unary : ++ -- + - ! ~ & *
Multiplicative : * / %
Additive : + -
Bitwise Shift : << >>
Relational : < > <= >=
Equality : == !=
Bitwise AND : &
Bitwise Exclusive : OR ^
Bitwise Inclusive : OR |
Logical AND : &&
Logical OR : ||
Conditional : ? :
Assignment : = += -= *= /= <<= >>= %= &= ^= |=
Comma / Semi-Colon : , ;
Parenthsis :
It must have 6 form, are ( , ) , [ , ] , { , } .
Now, You know the rule all the type. I will show how to lexical analysis.
I think, it have 4 step
1. Push all the data into the stack
2. Pop the data and token the data by byte and push it to the stack
3. You have the data by byte in the stack
4. Pop the data to analysis
Finally, It have many method to analysis such as use the switch case or if , etc.
Wednesday, December 16, 2009
Saturday, November 21, 2009
How to configure edit plus 3 to compiler by Java and C++
I'll show all step to configure it.
But I don't sure that it true for all.
Download file and do follow it
http://dl.dropbox.com/u/1456219/How%20to%20config%20Edit%20plus%203%20to%20compiler%20by%20C.pdf
But I don't sure that it true for all.
Download file and do follow it
http://dl.dropbox.com/u/1456219/How%20to%20config%20Edit%20plus%203%20to%20compiler%20by%20C.pdf
Monday, November 16, 2009
How to connect File in Java
How to connect File in Java, It easy to do but there are many people don't understand.
It have 4 component
let A is variable
B is variable
C is variable
D is variable
Path is directery's file
1. FileInputStream A = new FileInputStream( Path );
2. DataInputStream B = new DataInputStream( A );
3. InputStreamReader C = new InputStreamReader( B );
4. BufferedReader D = new BufferReader( C );
In 4 step, you can connect the file in java.
Finally, you must close the file with command
It have 4 component
let A is variable
B is variable
C is variable
D is variable
Path is directery's file
1. FileInputStream A = new FileInputStream( Path );
2. DataInputStream B = new DataInputStream( A );
3. InputStreamReader C = new InputStreamReader( B );
4. BufferedReader D = new BufferReader( C );
In 4 step, you can connect the file in java.
Finally, you must close the file with command
D.close()
Sunday, November 15, 2009
การโปรแกรม Disassembler เบื้องต้น
โปรแกรม Disassembler คือ ?
ตอบ โปรแกรมที่ใช้ในการแปลงโปรแกรมในภาษาเครื่องกลับมาเป็นโปรแกรมในภาษา Assembly
Concept กว้างๆ ในการเขียนโปรแกรม Disassembler (ในความรู้อันน้อยนิด)
1. รับข้อมูลทั้งหมด มาเก็บไว้ใน stack
2. pop ข้อมูล ออกมาทีละตัว เพื่อจะนำข้อมูลที่ pop ออกมา มาทำการแปลงข้อมูล
3. ทำการ check ข้อมูลที่ pop ออกมา ว่าเป็นข้อมูล ที่ถูกต้องหรือไม่
4. ถ้าข้อมูลถูกต้อง ก็ทำตามขั้นตอนต่อไป ถ้าไม่ก็ แสดงข้อความเตือน
5. แปลงข้อมูล ตาม ตารางชุดคำสั่ง
การจัดการกับ Stack ใน Java ไม่ค่อยยุ่งยากมากนัก เพราะ Java ได้เตรียม API เอาไว้ให้แล้ว
API ย่อมาจากคำว่า Application Programming Interface คือ เป็น library ที่สามารถเรียกใช้งานได้เลย
empty() - ดูว่า Stack ได้เก็บค่าอะไรไว้หรือไม่
peek() - ใช้ดูว่าค่าที่อยู่บนยอดบนสุดของ Stack คืออะไร
pop() - ดึงค่าที่อยู่บนยอดสุดของ Stack ออกมา
push() - นำค่าเข้าไปใส่ไว้ใน Stack
ซึ่งคำสั่งที่เรานำมาใช้ในการเขียน Disassembler ก็ใช้เพียง push() , pop() และ empty() เท่านั้น การใช้งานก็ไม่ได้ยุ่งยากอะไร
การเรียกใช้ stack มีอยู่ 2 ส่วน ที่สำคัญ คือ
1. import java.util.*;
2. Stack (Variable) = new Stack();
push() : ในการใช้งาน push() อาจดู งง อยู่บ้าง ตรงที่มัน เป็น Object ดังนั้น จะไม่สามารถใส่ข้อมูลลงไปได้โดยตรง ต้องทำการแปลงข้อมูลให้เป็น Object ก่อน
Stack A = new Stack(); --> สร้าง Stack
Object obj = new Integer(500); --> สร้าง object ที่เป็น Integer
A.push(obj); --> ใส่ข้อมูล ลงไปใน Stack
pop() : ในการใช้งาน pop() ไม่ได้ยุ่งยากอะไร
A.pop(); --> เอาข้อมูลที่อยู่ด้านบนของ Stack ออกมา
การ check ข้อมูลที่เก็บมาเป็นข้อมูลที่เราต้องการ หรือ ไม่นั้น เราจำเป็นต้องใช้การตรวจจับข้อผิดพลาด (Exception) ซึ่ง การ Exception นั้นมีประโยชน์ คือ จะไม่ทำให้โปรแกรมหยุดการทำงานเมื่อเกิดสิ่งผิดปกติขึ้น เพราะ สามารถตรวจสอบข้อผิดพลาดได้จึงสามารถสั่งให้โปรแกรมทำงานต่อไปได้ทัน
ในการใช้งาน Exception นั้น ใช้ในรูปแบบ ดังนี้
try
{
คำสั่งที่คาดว่าจะเกิดข้อผิดพลาด
}
catch( Exception ที่จะให้ตรวจสอบ <ตัวแปรมารับ> )
{
คำสั่ง
}
Exception ที่ น่าจะเกิดขึ้นระหว่างการเขียนโปรแกรม Disassembler
EmptyStackException (java.util)
อ้างถึง element ที่ไม่มีใน Stack
Exception (java.lang)
Root ของ exception hierarchy
FileNotFoundException (java.io)
ไม่พบชื่อ File ที่ระบุ
IOException (java.io)
I/O Operation ไม่สามารถทำงานได้เสร็จสมบูรณ์
NumberFormatException(java.lang)
ข้อมูลที่ไม่เป็นตัวเลข
ตัวอย่าง
try
{
คำสั่งที่คาดว่าจะเกิดข้อผิดพลาด
}
catch( NumberFormatException e )
{
System.out.println( "Error : " + e );
}
ตอบ โปรแกรมที่ใช้ในการแปลงโปรแกรมในภาษาเครื่องกลับมาเป็นโปรแกรมในภาษา Assembly
Concept กว้างๆ ในการเขียนโปรแกรม Disassembler (ในความรู้อันน้อยนิด)
1. รับข้อมูลทั้งหมด มาเก็บไว้ใน stack
2. pop ข้อมูล ออกมาทีละตัว เพื่อจะนำข้อมูลที่ pop ออกมา มาทำการแปลงข้อมูล
3. ทำการ check ข้อมูลที่ pop ออกมา ว่าเป็นข้อมูล ที่ถูกต้องหรือไม่
4. ถ้าข้อมูลถูกต้อง ก็ทำตามขั้นตอนต่อไป ถ้าไม่ก็ แสดงข้อความเตือน
5. แปลงข้อมูล ตาม ตารางชุดคำสั่ง
การจัดการกับ Stack ใน Java ไม่ค่อยยุ่งยากมากนัก เพราะ Java ได้เตรียม API เอาไว้ให้แล้ว
API ย่อมาจากคำว่า Application Programming Interface คือ เป็น library ที่สามารถเรียกใช้งานได้เลย
empty() - ดูว่า Stack ได้เก็บค่าอะไรไว้หรือไม่
peek() - ใช้ดูว่าค่าที่อยู่บนยอดบนสุดของ Stack คืออะไร
pop() - ดึงค่าที่อยู่บนยอดสุดของ Stack ออกมา
push() - นำค่าเข้าไปใส่ไว้ใน Stack
ซึ่งคำสั่งที่เรานำมาใช้ในการเขียน Disassembler ก็ใช้เพียง push() , pop() และ empty() เท่านั้น การใช้งานก็ไม่ได้ยุ่งยากอะไร
การเรียกใช้ stack มีอยู่ 2 ส่วน ที่สำคัญ คือ
1. import java.util.*;
2. Stack (Variable) = new Stack
push() : ในการใช้งาน push() อาจดู งง อยู่บ้าง ตรงที่มัน เป็น Object ดังนั้น จะไม่สามารถใส่ข้อมูลลงไปได้โดยตรง ต้องทำการแปลงข้อมูลให้เป็น Object ก่อน
Stack A = new Stack
Object obj = new Integer(500); --> สร้าง object ที่เป็น Integer
A.push(obj); --> ใส่ข้อมูล ลงไปใน Stack
pop() : ในการใช้งาน pop() ไม่ได้ยุ่งยากอะไร
A.pop(); --> เอาข้อมูลที่อยู่ด้านบนของ Stack ออกมา
การ check ข้อมูลที่เก็บมาเป็นข้อมูลที่เราต้องการ หรือ ไม่นั้น เราจำเป็นต้องใช้การตรวจจับข้อผิดพลาด (Exception) ซึ่ง การ Exception นั้นมีประโยชน์ คือ จะไม่ทำให้โปรแกรมหยุดการทำงานเมื่อเกิดสิ่งผิดปกติขึ้น เพราะ สามารถตรวจสอบข้อผิดพลาดได้จึงสามารถสั่งให้โปรแกรมทำงานต่อไปได้ทัน
ในการใช้งาน Exception นั้น ใช้ในรูปแบบ ดังนี้
try
{
คำสั่งที่คาดว่าจะเกิดข้อผิดพลาด
}
catch( Exception ที่จะให้ตรวจสอบ <ตัวแปรมารับ> )
{
คำสั่ง
}
Exception ที่ น่าจะเกิดขึ้นระหว่างการเขียนโปรแกรม Disassembler
EmptyStackException (java.util)
อ้างถึง element ที่ไม่มีใน Stack
Exception (java.lang)
Root ของ exception hierarchy
FileNotFoundException (java.io)
ไม่พบชื่อ File ที่ระบุ
IOException (java.io)
I/O Operation ไม่สามารถทำงานได้เสร็จสมบูรณ์
NumberFormatException(java.lang)
ข้อมูลที่ไม่เป็นตัวเลข
ตัวอย่าง
try
{
คำสั่งที่คาดว่าจะเกิดข้อผิดพลาด
}
catch( NumberFormatException e )
{
System.out.println( "Error : " + e );
}
Saturday, November 7, 2009
1 ในรูปแบบ การบันทึก PSP [ Type: Excel ]
เค้าได้ทำตาราง ไว้ บันทึก psp นะ
เค้ายังไม่แน่ใจว่า มันจะถูกต้องแค่ไหน
แต่เอาไปใช้ ชั่วคราว ก็น่าจะได้
http://www.upload-thai.com/download.php?id=4e45ec86e3a707da150bf201150adc6a
หวังว่าคงช่วยได้บ้างนะ
เค้ายังไม่แน่ใจว่า มันจะถูกต้องแค่ไหน
แต่เอาไปใช้ ชั่วคราว ก็น่าจะได้
http://www.upload-thai.com/download.php?id=4e45ec86e3a707da150bf201150adc6a
หวังว่าคงช่วยได้บ้างนะ
Subscribe to:
Posts (Atom)