สายอักขระว่าง
ในวิทยาการคอมพิวเตอร์และภาษารูปนัย สายอักขระว่าง (อังกฤษ: empty string, null string[1]) หมายถึงสายอักขระที่มีหนึ่งเดียวที่มีความยาวเป็นศูนย์
ทฤษฎีรูปนัย
[แก้]สายอักขระตามรูปนัยคือลำดับของสัญลักษณ์เช่นตัวอักษรหรือตัวเลขที่มีความยาวจำกัด สายอักขระว่างจึงเป็นกรณีสุดขีดซึ่งมีความยาวของลำดับเป็นศูนย์ ดังนั้นมันจึงไม่มีสัญลักษณ์อันใดในสายอักขระว่าง สายอักขระว่างมีเพียงหนึ่งเดียว เพราะว่าสายอักขระสองสายจะแตกต่างกันก็ต่อเมื่อมีความยาวหรือลำดับของสัญลักษณ์ที่ต่างกัน สายอักขระว่างเขียนแทนด้วย λ หรืออาจพบได้ในรูป Λ หรือ ε
ไม่ควรสับสนระหว่างสายอักขระว่าง λ กับภาษาว่าง ∅ เพราะภาษาว่างหมายถึงภาษารูปนัยที่ไม่มีสายอักขระใด ๆ อยู่เลย ไม่มีแม้กระทั่งสายอักขระว่าง
สายอักขระว่างมีสมบัติหลายประการดังนี้
- สายอักขระว่างมีความยาวเท่ากับศูนย์
- สายอักขระว่างเป็นสมาชิกเอกลักษณ์ของการต่อกันของสายอักขระ (concatenation) (ซึ่งทำให้เกิดโมนอยด์อิสระ (free monoid) บนอักษร Σ)
- การเรียงลำดับย้อนกลับของสายอักขระว่างก็ได้สายอักขระว่าง
- สายอักขระว่างจะอยู่ลำดับแรกสุดในการจัดลำดับแบบพจนานุกรม (lexicographical order) เพราะว่ามันมีความยาวสั้นที่สุดจากสายอักขระทั้งหมด [2]
การใช้ในภาษาโปรแกรม
[แก้]ในภาษาโปรแกรมส่วนใหญ่ สายอักขระเป็นแบบชนิดข้อมูลแบบหนึ่ง สายอักขระเอกเทศโดยปกติจะถูกเก็บลงในตำแหน่งหน่วยความจำที่ต่อเนื่องตามลำดับ หมายความว่าสายอักขระที่เหมือนกัน (ตัวอย่างเช่นสายอักขระว่าง) สามารถเก็บไว้ที่หน่วยความจำสองตำแหน่งที่ต่างกันได้ (สายอักขระที่มีความยาวเป็นศูนย์ก็อาจต้องการหน่วยความจำในการเก็บบันทึกเช่นกัน ขึ้นอยู่กับรูปแบบที่กำลังใช้งาน) ด้วยเหตุผลนี้หน่วยความจำจึงอาจมีสายอักขระว่างหลายสายก็ได้ ต่างจากนิยามของทฤษฎีรูปนัยซึ่งกล่าวว่าสายอักขระว่างมีได้เพียงหนึ่งเดียว อย่างไรก็ตาม ฟังก์ชันการเปรียบเทียบสายอักขระยังคงให้ผลลัพธ์ว่า สายอักขระว่างทั้งหมดนั้นเท่ากัน
ภาษาโปรแกรมส่วนใหญ่สามารถใช้ ""
หรือ ''
แทนสายอักขระว่าง λ แต่ก็ยังมีบางภาษาที่สามารถเขียนในรูปแบบอื่นได้อีก เช่น
ตัวแทนของ λ | ภาษาโปรแกรม |
---|---|
""
|
ซี, ซีพลัสพลัส, เพิร์ล, ไพทอน, ซีชาร์ป, โก, พีเอชพี, วิชวลเบสิกดอตเน็ต, จาวา, ทัวริง, จาวาสคริปต์, แฮสเคลล์, อ็อบเจกทีฟ-ซี (แบบสายอักขระภาษาซี), โอแคเมล, มาร์กอัป (แบบมาตรฐาน), สกาลา, ทีซีแอล |
''
|
เพิร์ล, พีเอชพี, ไพทอน, จาวาสคริปต์, เดลไฟ, ปาสกาล |
{'\0'}
|
ซี, ซีพลัสพลัส, อ็อบเจกทีฟ-ซี (แบบสายอักขระภาษาซี) |
std::string()
|
ซีพลัสพลัส |
@""
|
อ็อบเจกทีฟ-ซี (แบบวัตถุ NSString) |
[NSString string]
|
อ็อบเจกทีฟ-ซี (แบบวัตถุ NSString) |
qw()
|
เพิร์ล |
"""""" str()
|
ไพทอน |
string.Empty
|
ซีชาร์ป |
String.Empty
|
วิชวลเบสิกดอตเน็ต |
String.make 0 '-'
|
โอแคเมล |
{}
|
ทีซีแอล |
อ้างอิง
[แก้]- ↑ Kernighan and Ritchie, C, p. 38
- ↑ "CSE1002 Lecture Notes - Lexicographic" (PDF). คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2009-12-29. สืบค้นเมื่อ 2012-06-27.