Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ภาษา

Whamm เปิดทางให้นักพัฒนาเครื่องมือแสดง instrumentation ในรูปของอีเวนต์ในโปรแกรมและการกระทำที่มีเพรดิเคตที่สอดคล้องกัน กล่าวคือ “เมื่ออีเวนต์นี้เกิดขึ้นระหว่างการทำงานของโปรแกรม ให้ลงมือทำการกระทำเหล่านี้หากเพรดิเคตนี้ (หรือเงื่อนไข) ประเมินเป็น true” นามธรรมเช่นนี้ทำให้ได้ไวยากรณ์ระดับสูงที่เข้าใจง่าย และกำหนดเป้าหมายอีเวนต์ได้ที่ความละเอียดต่างๆ กันในโปรแกรมเป้าหมาย

อ่านต่อไปเพื่อดูภาพรวมของไวยากรณ์และความหมายของภาษา

แนวคิดของภาษา

  • ตัวแปร ใช้สำหรับเก็บข้อมูล
  • การดำเนินการเชิงตรรกะ ใช้รวมนิพจน์บูลีนหลายนิพจน์เข้าด้วยกัน
  • นิพจน์เทอร์นารี ช่วยกำหนดค่าตัวแปรแบบมีเงื่อนไขได้อย่างกระชับ
  • ชนิดพื้นฐาน ได้แก่ ตัวเลข บูลีน และสตริง
  • การดำเนินการทางเลขคณิต รูปแบบต่างๆ ใช้ได้กับตัวเลข
  • สตริง เป็นหัวใจของการจัดการข้อความและอื่นๆ
  • ทูเพิล ช่วยให้ใช้หลายค่าตรงที่ปกติคาดว่าจะมีค่าเดียว
  • แมป เป็นหัวใจของการเก็บข้อมูลปริมาณมาก แต่ถูกนำไปใช้ต่างออกไปพอสมควรใน Whamm
  • นิยามฟังก์ชัน ช่วยให้ใช้โค้ดบางส่วนซ้ำได้
  • คำสั่งเงื่อนไข คือคำสั่ง if/else/elif สำหรับควบคุมโฟลว์อย่างง่าย
  • ขอบเขตชนิด ใช้จัดการออปโค้ดที่มีหลายรูปแบบ (polymorphic)
  • Whamm ยังมีฟีเจอร์ที่ช่วยเสริมความสามารถในการแสดง instrumentation
    • ตัวแปร Report เป็นหัวใจของการระบายข้อมูลเชิงพลวัตที่ instrumentation เก็บรวบรวมระหว่างการรันแอปพลิเคชัน
    • ตัวแปร Unshared สร้างอินสแตนซ์ของตัวแปรให้ทุกจุดที่แมตช์ของโพรบ โดยค่ายังคงอยู่ข้ามการมาเยือนจุดนั้น
    • ตัวแปร Shared สร้างอินสแตนซ์ของตัวแปรที่ทุกจุดที่แมตช์ของโพรบใช้ร่วมกัน
    • ตัวแปร Frame สร้างอินสแตนซ์ของตัวแปรที่ถูกเก็บไว้บนเฟรมที่ทำงานอยู่ของฟังก์ชัน
  • และสุดท้าย โพรบ ใช้แสดง instrumentation
  • ไวยากรณ์ทั้งหมดนี้ใช้เขียนสคริปต์ Whamm