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