งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

 Warattapop Chainate.  เพื่อควบคุมลำดับการทำงานของโปรแกรมให้ตรงตามที่ โปรแกรมเมอร์ต้องการ  สำหรับกลุ่มภาษาเชิงคำสั่ง (imperative) และภาษาเชิงวัตถุ

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: " Warattapop Chainate.  เพื่อควบคุมลำดับการทำงานของโปรแกรมให้ตรงตามที่ โปรแกรมเมอร์ต้องการ  สำหรับกลุ่มภาษาเชิงคำสั่ง (imperative) และภาษาเชิงวัตถุ"— ใบสำเนางานนำเสนอ:

1  Warattapop Chainate

2  เพื่อควบคุมลำดับการทำงานของโปรแกรมให้ตรงตามที่ โปรแกรมเมอร์ต้องการ  สำหรับกลุ่มภาษาเชิงคำสั่ง (imperative) และภาษาเชิงวัตถุ (object oriented) โครงสร้างควบคุมจะประกอบด้วยโครงสร้าง ของ... o คำสั่งกำหนดค่า o คำสั่งรวมกลุ่มการทำงาน o คำสั่งแบบมีเงื่อนไข o คำสั่งทำซ้ำ  นอกจากนี้ ภาษาคอมพิวเตอร์รุ่นใหม่ๆ มักจะมีโครงสร้างเพื่อการ ทำโปรแกรมย่อย และโครงสร้างเพื่อการจัดการกรณียกเว้น  ทั้งหมด เพื่อให้โปรแกรมมีโครงสร้างที่ดี และเชื่อถือได้ในด้าน ความทนทานต่อข้อบกพร่อง

3  นิพจน์ เป็นส่วนประกอบพื้นฐานของคำสั่งแทบทุกคำสั่ง  เป็นส่วนผลิตค่าให้กับคำสั่ง o Literal o Operator Monadic or unary Dyadic or binary  รูปแบบการเขียนนิพจน์ แบ่งได้เป็น o Infix notation o Prefix notation o Postfix notation

4  เขียนโอเปอเรเตอร์อยู่ตรงกลางระหว่างโอเปอแรนด์ทางซ้าย และทางขวา  ในกรณีที่นิพจน์มีมากกว่าหนึ่งโอเปอเรเตอร์ และโอเปอเรเตอร์ เหล่านั้นมีคสามสำคัญเท่าเทียมกัน o เช่น x+y+z, x, a=b=c=3  ผู้ออกแบบภาษาจะต้องกำหนดทิศทางการคำนวณว่า จะทำจาก ซ้ายไปขวา หรือจากขวาไปซ้าย เราจะเรียกทิศทางในการ คำนวณนี้ว่า associative o Left-associative o Right-associative

5  ในกรณีที่นิพจน์มีโอเปอเรเตอร์ที่ความสำคัญไม่เท่ากัน เช่น x+p*q  ผู้ออกแบบภาษาจะต้องกำหนดลำดับความสำคัญก่อนหลัง เรียกว่า precedence ** right associative

6  รูปแบบพรีฟิกซ์ บางครั้งเรียกว่า รูปแบบโพลิช (Polish notation)  ถูกสร้างขึ้นเพื่อให้การเขียนนิพจน์คณิตศาสตร์ไม่จำเป็นต้องใช้ วงเล็บ เพื่อระบุลำดับก่อนหลังของการคำนวณ  รูปแบบพรีฟิกซ์นี้ จะเขียนโอเปอเรเตอร์ไว้ก่อนหน้าโอเปอแรนด์ o เช่น 4+(5*6) เขียนให้อยู่ในรูปนิพจน์พรีฟิกซ์ได้ +4*56 และ (4+5)*6 เขียนให้อยู่ในรูปนิพจน์โพสต์ฟิกซ์ได้ *+456  รูปแบบโพสฟิกซ์ มีลักษณะตรงข้าม กับพรีฟิกซ์ บางครั้งจึง เรียกว่า รูปแบบโพลิชสลับลำดับ (reverse Polish notation)  รูปแบบโพสฟิกซ์จะเขียนโอเปอเรเตอร์ไว้หลังโอเปอแรนด์

7  ในทางคณิตศาสตร์ การเขียนนิพจน์ส่วนใหญ่ จะใช้รูปแบบอิน ฟิกซ์  แต่มีการดำเนินการบางอย่างที่ใช้รูปแบบพรีฟิกซ์ และรูปแบบ โพสฟิกซ์  ในทางคอมพิวเตอร์ ส่วนใหญ่ก็จะใช้รูปแบบอินฟิกซ์ แต่ก็มีบาง การดำเนินการที่ใช้รูปแบบพรีฟิกซ์ และโพสฟิกซ์

8  Operator overloading: การใช้เครื่องหมายโอเปอเรเตอร์เดียว ทำงานมากกว่าหนึ่งแบบ ซึ่งมักจะเกิดขึ้นบ่อยมากใน ภาษาคอมพิวเตอร์  มีข้อดีคือ ลดการมีเครื่องหมายโอเปอเรเตอร์ให้ใช้มากชนิด เกินไป  การคำนวณผลลัพธ์แบบอินฟิกซ์ จะต้องใช้ข้อมูลเกี่ยวกับ precedence และ association ประกอบการพิจารณาลำดับการ คำนวณ เช่น นิพจน์ในภาษา Pascal a = b (TRUE < FALSE) => FALSE หากเป็นนิพจน์ในภาษา C a == b (1 < 0) => 0

9  การกำหนดค่าของนิพจน์ให้ตัวแปร o ภาษา Pascal ใช้เครื่องหมาย := แทนการกำหนดค่า เช่น x := 3 o ภาษา C ใช้เครื่องหมาย = เช่น x = 3  เครื่องหมาย = จัดเป็นโอเปอเรเตอร์ที่มีลำดับการทำงานจากขวา ไปซ้าย ผลลัพธ์ของนิพจน์จะเป็นค่าของโอเปอแรนด์ที่อยู่ทาง ซ้ายมือของ = o ดังนั้น a = b = c = 0; จะหมายความว่า (a = (b = (c = 0)))  ลองอธิบายคำสั่งต่อไปนี้ while ((*p++=*q++)!=0) {}  Side effect?

10  การเขียนนิพจน์ในภาษา C แล้ว นอกจากจะใช้เครื่องหมาย = แล้ว ยังสามารถใช้เครื่องหมาย ?: ที่เป็นโอเปอเรเตอร์ หมายถึง การทำงานแบบมีเงื่อนไข if… then… else… o เช่น x!=0 ? 1/x : 0;  หากผลลัพธ์ที่ได้จากโอเปอเรเตอร์ ?: เป็นค่า (value) นิพจน์นี้ สามารถอยู่ทางขวาของเครื่องหมาย = ได้ o q = (x!=0) ? 1/x : 0;  หากเป็นตำแหน่ง (address) สามารถปรากฏทางซ้ายของ เครื่องหมาย = o (p>r) ? *p : *r = 0;

11  ข้อความสั่งบางประเภทมีการใช้นิพจน์ย่อยหลายนิพจน์ การ คำรวณผลลัพธ์ของนิพจน์ย่อยเหล่านั้น ไม่จำเป็นจะต้องกระทำ ทั้งหมดในคราวเดียว o ถ้าในโปรแกรมมีการประกาศอาร์เรย์ a[1..10] และมีการเรียกใช้คำสั่ง ต่อไปนี้ IF (i 0) THEN … o นิพจน์ย่อยในคำสั่งนี้คือ (i 0)  Lazy evaluation ใช้มากในการทำโปรแกรมเชิงหน้าที่ เพื่อเพิ่ม ความเร็วในการประมวลผลโปรแกรม  ในภาษา C มีการกำหนดวิธีการทำงานของบางโอเปอเรเตอร์ เช่น &&, II สำหรับการทำงานแบบเกียจคร้าน เรียกโอเปอเรเตอร์ เหล่านี้ว่า short-cut operators หรือ short-circuit operators  ภาษา Ada, if (I 0) then … end if ;

12  เป็นคำสั่งที่ใช้ในการสร้าง หรือเปลี่ยนแปลงค่าให้กับตัวแปร เช่นคำสั่งในภาษา C i = (x+y)/2;  จะเกิดการคำนวณผลลัพธ์ของนิพจน์ (x+y)/2 (source) และค่าที่ ได้จะถูกกำหนดให้กับตัวแปร i (target or destination) ของการ กำหนดค่า  r-value : ค่าที่เก็บอยู่ในหน่วยความจำตำแหน่งต่างๆ  l-value : ตำแหน่งหรือแอดเดรสของหน่วยความจำ

13  จากตัวอย่างเดิม ถ้ามีคำสั่งเพิ่มเติมดังนี้ x = y*i ;  ในเรื่องนี้ หลักทางคณิตศาสตร์ และทางคอมพิวเตอร์ ต่างกัน อย่างไร ( ร่วมอภิปราย )

14  เป็นคำสั่งที่ส่งผลให้การทำงานของคอมพิวเตอร์เกิดการเปลี่ยน สถานะ (state)  Sequence:  คำสั่งต่อเนื่องเหล่านี้ สามารถถูกจัดให้เป็นชุดเดียวกัน โดยใช้


ดาวน์โหลด ppt  Warattapop Chainate.  เพื่อควบคุมลำดับการทำงานของโปรแกรมให้ตรงตามที่ โปรแกรมเมอร์ต้องการ  สำหรับกลุ่มภาษาเชิงคำสั่ง (imperative) และภาษาเชิงวัตถุ

งานนำเสนอที่คล้ายกัน


Ads by Google