เหตุใด XML จึงเรียกว่า "ภาษา" อย่างแน่นอน


105

ฉันสงสัยว่าทำไม XML จึงมี L อยู่ในชื่อ

ด้วยตัวเอง XML ไม่ "ทำ" อะไร มันเป็นเพียงรูปแบบการจัดเก็บข้อมูลไม่ใช่ภาษา! ภาษาที่ "ทำ"

วิธีที่คุณได้รับ XML เพื่อ "ทำ" สิ่งต่าง ๆ เพื่อเปลี่ยนให้เป็นภาษาที่เหมาะสมคือการเพิ่มxmlnsคุณสมบัติให้กับองค์ประกอบราก จากนั้นจะบอกสภาพแวดล้อมเกี่ยวกับสิ่งนั้น
ตัวอย่างหนึ่งคือ XHTML มันใช้งานก็มีการเชื่อมโยงหลายมิติรูปแบบอื่น ๆ xmlnsทั้งหมดที่เกิดจาก หากปราศจากไฟล์นั้นไฟล์ XHTML จะเป็นเพียงข้อมูลในโหนดมาร์กอัป

เหตุใด XML จึงเรียกว่าภาษา มันไม่ได้อธิบายอะไรเลยมันไม่ได้แปลมันแค่

แก้ไข: บางทีคำถามของฉันควรกว้างขึ้น เนื่องจากคำตอบอยู่ในขณะนี้ "เนื่องจาก XML ถูกตั้งชื่อตาม SGML ซึ่งถูกตั้งชื่อตาม GML ฯลฯ " คำถามควรได้รับทำไมมาร์กอัปภาษา (เช่น XML) เรียกว่าภาษา?

อ๋อและ WRT โหวตอย่างใกล้ชิด: ไม่ฉันไม่ได้ถามเกี่ยวกับ X ฉันกำลังถามเกี่ยวกับ L!


128
คุณยึดความต้องการของคุณว่าภาษาต้องทำอะไรบางอย่าง? ฉันไม่เห็นว่าในใด ๆ ของคำนิยามที่dictionary.com
kdgregory

10
เช่นเดียวกับภาษาสวาฮิลีที่เข้าใจกันก็ต่อเมื่อทั้งคู่เข้าใจ หรือบทความวารสารทางการแพทย์เป็นที่เข้าใจหากผู้อ่านเข้าใจส่วนนั้นของภาษา มันไม่แตกต่างกัน และผู้คนก็ทำคำจำกัดความ
Sami Kuhmonen

42
ภาษามาร์กอัปเป็นคำศัพท์ที่พบบ่อย en.wikipedia.org/wiki/Markup_language
paparazzo

37
@MrLister: "นั่นคือภาษามนุษย์ไม่ใช่ภาษาคอมพิวเตอร์"ภาษาคือภาษา สุดขีดที่สุดแม้แต่ภาษาอังกฤษก็ต้องการข้อมูลตามบริบท (ซึ่งใช้ภาษาถิ่น) เพื่อทำความเข้าใจอย่างชัดเจน ไม่หยุดมันจากการเป็นภาษา คำถามของคุณมีหลักฐานเท็จ
การแข่งขัน Lightness ใน Orbit

68
ภาษาที่ไม่ทำสิ่งต่าง ๆ พวกเขาแสดงและสื่อสารสิ่งต่าง ๆ
Hagen von Eitzen

คำตอบ:


238

คำตอบที่แท้จริงคือ XML มี L อยู่ในชื่อเพราะผู้ชายที่ชื่อ Raymond L orie เป็นหนึ่งในนักออกแบบของ "ภาษามาร์กอัป" แรกที่ IBM ในปี 1970 ผู้พัฒนาต้องค้นหาชื่อภาษาดังนั้นพวกเขาจึงเลือกGMLเพราะเป็นชื่อย่อของนักพัฒนาทั้งสาม (Goldfarb, Mosher และ Lorie) จากนั้นพวกเขาสร้างbackronym Generalized Markup Language

ต่อมาสิ่งนี้กลายเป็นมาตรฐานในฐานะ SGML ( มาตรฐานภาษามาร์กอัปทั่วไป ) และเมื่อสร้าง XML นักพัฒนาต้องการเก็บ ML-postfix เพื่อระบุความสัมพันธ์ในครอบครัวกับ SGML และเพิ่ม X ไว้ข้างหน้าเพราะพวกเขาคิดว่ามันดูเท่ห์ (แม้ว่ามันจะไม่สมเหตุสมผลจริง ๆ ก็ตาม - XML ​​เป็นภาษาเมตาที่ให้คุณกำหนดภาษาที่สามารถขยายได้ แต่ XML นั้นไม่สามารถขยายได้จริงๆ)

สำหรับคำถามที่สองของคุณหาก XML สามารถเรียกได้ว่าเป็นภาษาที่ถูกต้อง:

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

คุณทราบว่า XML เป็น "รูปแบบการจัดเก็บข้อมูล" ซึ่งเป็นจริง แต่รูปแบบการจัดเก็บข้อมูลต้นฉบับสามารถเรียกว่าภาษาคำเหล่านี้ไม่ได้เป็นพิเศษร่วมกัน

ภาษาการเขียนโปรแกรมเป็นส่วนย่อยของภาษา เช่น HTML และ CSS เป็นภาษาแต่ไม่ใช่ภาษาโปรแกรมขณะที่ JavaScript เป็นภาษาโปรแกรมจริง ที่กล่าวว่าไม่มีความหมายอย่างเป็นทางการของภาษาการเขียนโปรแกรมและมีโซนสีเทาขนาดใหญ่ของภาษาที่สามารถเรียกได้ว่าเป็นรูปแบบข้อมูลหรือภาษาการเขียนโปรแกรมขึ้นอยู่กับมุมมองของคุณ

ให้สิ่งนี้ XML เป็นภาษาที่ชัดเจน ไม่ใช่ภาษาโปรแกรมแต่สามารถใช้เพื่อกำหนดภาษาโปรแกรมเช่น XSLT

ประเด็นของคุณเกี่ยวกับเนมสเปซนั้นไม่เกี่ยวข้อง เนมสเปซเป็นคุณสมบัติเสริมของ XML และไม่เปลี่ยนความหมายของคำศัพท์ XML มันเป็นเพียงความจำเป็นที่จะแก้ปัญหาชื่อองค์ประกอบถ้ารูปแบบอาจมีคำศัพท์หลาย


แก้ไข: reinierpost ชี้ให้เห็นว่าคุณอาจหมายถึงบางสิ่งที่แตกต่างกับคำถามมากกว่าที่ฉันเข้าใจ บางทีคุณอาจหมายถึงคำศัพท์เฉพาะเช่น XHTML, RSS, XSLT เป็นต้นเป็นภาษาเนื่องจากพวกมันเชื่อมโยงองค์ประกอบและคุณลักษณะกับความหมายเฉพาะ แต่มาตรฐาน XML นั้นไม่ได้กำหนดความหมายสำหรับองค์ประกอบและคุณลักษณะเฉพาะดังนั้นจึงไม่รู้สึกเหมือน " ภาษาจริง ".

คำตอบของฉันเกี่ยวกับเรื่องนี้ก็คือ XML จะกำหนดทั้งไวยากรณ์และความหมายมันแค่กำหนดไว้ในระดับที่แตกต่างกัน ตัวอย่างเช่นกำหนดไวยากรณ์ขององค์ประกอบและคุณสมบัติและกฎเกี่ยวกับวิธีการประมวลผล XML เป็น "metalanguage" ซึ่งยังคงเป็นภาษาหนึ่ง (เช่นเดียวกับข้อมูลเมตายังเป็นข้อมูล!) ตัวอย่างเช่นEBNFก็เป็นภาษาที่ชัดเจนเช่นกัน แต่จุดประสงค์คือเพื่อกำหนดไวยากรณ์ของภาษาอื่น ๆ ดังนั้นจึงเป็นภาษาที่เป็นโลหะ


33
มีความเป็นนิยามของภาษาในคอมพิวเตอร์

19
@Snowman: "ภาษาทางการ" ไม่จำเป็นต้องตรงกับสิ่งที่มักจะเรียกว่าภาษาในการคำนวณ ตัวอย่างเช่น "ภาษาที่เป็นทางการ" ไม่จำเป็นต้องเป็นข้อความ - รหัสเครื่องเป็นภาษาที่เป็นทางการเหมือนกับรูปแบบไบนารีและโปรโตคอลส่วนใหญ่ ดังนั้นฉันจะไม่พูดคำว่า "ภาษาทางการ" ครอบคลุมความหมายเดียวกันกับ "ภาษา" ในการคำนวณ
JacquesB

15
ฉันไม่ได้ตระหนักถึงความต้องการใด ๆ ที่ภาษาต้องเป็นข้อความหรือไม่เป็นข้อความ ความคิดในการสร้างประโยคจากเทอร์มินัลไม่มีส่วนเกี่ยวข้องกับการตีความโดยพลการของบิตในเทอร์มินัลเหล่านั้นหรือคอมพิวเตอร์ประเภทใด (ซิลิกอนหรือคาร์บอน - เบส) สามารถอ่านได้

4
@ NicolBolas: จุดดีรหัสเครื่องเป็นภาษาแน่นอน ฉันคิดว่าเป็นเรื่องธรรมดาที่จะเรียก "รูปแบบ" ของไบนารีภาษาเช่นคุณบอกว่ารูปแบบ GIF ไม่ใช่รูปแบบ GIF
JacquesB

3
@BenCottrell: มันจะไม่ใช่กราฟเพราะอาจมีลูปไหม
JacquesB

181

เพราะมันเป็นภาษา มาร์กอัปภาษาไม่ได้เป็นภาษาการเขียนโปรแกรม

โปรดสังเกตว่าภาษามนุษย์ธรรมดาเช่นภาษาอังกฤษและสเปนไม่ได้ "ทำ" อย่างใดอย่างหนึ่ง ในความเป็นจริงทางเทคนิค C ++ และ Java และสิ่งที่ไม่ชอบทำอะไรจนกว่าพวกเขาจะถูกป้อนเข้าสู่คอมไพเลอร์และเอาท์พุทได้รับการดำเนินการ การทำสิ่งต่าง ๆ และการใช้ภาษานั้นมีความสำคัญซึ่งกันและกัน


43
แทน "interpreter" สำหรับ "compiler" การถูกป้อนเข้าสู่คอมไพเลอร์ไม่ได้ทำให้พวกเขา "ทำ" อะไรเลยมันแค่แปลพวกเขาเป็นภาษาอื่นซึ่งอีกครั้งไม่ "ทำ" อะไรเลย การดำเนินการทั้งหมดคือการตีความ บางครั้งล่ามอาจใช้งานง่ายมากและใช้งานในซิลิคอนซึ่งในกรณีนี้เราเรียกมันว่า "หน่วยปฏิบัติการ" แต่ก็ยังเป็นล่าม </nitpick>อย่างไรก็ตามคำตอบที่ดี!
Jörg W Mittag

8
@ JörgWMittagจุดที่ดี เนื่องจากฉันสุ่มเลือกภาษาที่เรียบเรียงโดยทั่วไปเพิ่ม "และเอาต์พุตถูกเรียกใช้งาน"
Ixrec

1
ขยายภาษามาร์กอัปถ้าคุณจะ
doppelgreener

1
ฉันขอยืนยันว่าภาษาของมนุษย์ทำสิ่ง "ทำ" ดูพูดพระราชบัญญัติทฤษฎี ...
เรย์

2
หวาน orthogonality หวาน ดำเนินการภาษาในพีชคณิตที่แตกต่างกันและชุดของการกระทำใหม่ทั้งหมดแผ่ออกไป ภายใต้ทฤษฎีต่อไป
Kenogu Labz

103

ให้Σเป็นไม่ว่างเปล่าขอบเขตของสัญลักษณ์ที่เรียกว่าอักษร จากนั้นΣ * คือชุดคำที่ไม่สิ้นสุดที่นับไม่ได้ซึ่งสามารถสร้างขึ้นได้โดยการต่อสัญลักษณ์ศูนย์หรือมากกว่าจากΣ ใด ๆ ที่ดีที่กำหนดเซตL ⊆Σ * เป็นภาษา

ลองใช้สิ่งนี้กับ XML ตัวอักษรที่เป็นUnicodeอักขระชุดUซึ่งเป็นไม่ว่างเปล่าและแน่นอน การต่อข้อมูลที่มีอักขระ Unicode ไม่เกินศูนย์ทุกตัวเป็นเอกสาร XML ที่มีรูปแบบที่ดีตัวอย่างเช่นสตริง

<tag> soup &; not <//good>

ไม่ชัดเจน XML XML U * ชุดย่อยที่สร้างเอกสารXML ที่มีรูปแบบที่ถูกต้องสามารถตัดสินใจได้ (หรือ“ เรียกซ้ำ”) มีเครื่อง (อัลกอริทึมหรือโปรแกรมคอมพิวเตอร์) ที่ใช้เป็นคำใด ๆ ที่wU * และหลังจากเวลาที่ จำกัด ผลลัพธ์จะเป็น 1 ถ้าw ∈ XML และ 0 เป็นอย่างอื่น อัลกอริทึมดังกล่าวเป็นรูทีนย่อยของซอฟต์แวร์ประมวลผล XML ใด ๆ ไม่ใช่ทุกภาษาที่สามารถตัดสินใจได้ ตัวอย่างเช่นชุดของโปรแกรม C ที่ถูกต้องซึ่งสิ้นสุดในเวลาที่ จำกัด ไม่เป็น (เรียกได้ว่าเป็นปัญหาการหยุดทำงาน) เมื่อมีการออกแบบภาษาใหม่การตัดสินใจที่สำคัญในการตัดสินใจคือควรจะมีพลังมากที่สุดเท่าที่จะเป็นไปได้หรือไม่

บางภาษาสามารถกำหนดได้โดยใช้ไวยากรณ์ที่ใช้ในการสร้างภาษา ไวยากรณ์ประกอบด้วย

  • ชุด จำกัด ของสัญพจน์ (เรียกอีกอย่างว่าสัญลักษณ์เทอร์มินัล )
  • ชุด จำกัด ของตัวแปรของไวยากรณ์ (เรียกอีกอย่างว่าสัญลักษณ์ที่ไม่ใช่เทอร์มินัล )
  • สัญลักษณ์เริ่มต้นที่แตกต่างนำมาจากชุดของตัวแปรและ
  • ชุดของกฎที่ จำกัด (เรียกว่าการผลิต ) ที่อนุญาตให้มีการทดแทนบางประเภท

คำใด ๆ ที่ประกอบด้วยตัวอักษรเท่านั้นและสามารถรับได้โดยเริ่มต้นด้วยสัญลักษณ์เริ่มต้นจากนั้นใช้กฎที่กำหนดให้เป็นของภาษาที่ผลิตโดยไวยากรณ์

ตัวอย่างเช่นไวยากรณ์ต่อไปนี้ (เป็นสัญกรณ์ค่อนข้างเป็นทางการ) ช่วยให้คุณได้รับจำนวนเต็มในรูปแบบทศนิยม

  1. ตัวอักษรของไวยากรณ์ที่มีตัวเลข1, 2, 3, 4, 5, 6, 7, 8, และ90
  2. ตัวแปรที่มีสัญลักษณ์SและD
  3. Sเป็นสัญลักษณ์เริ่มต้น
  4. การเกิดขึ้นของตัวแปรSอาจถูกแทนที่
    • กับตัวอักษร0หรือ
    • โดยใด ๆ ของตัวอักษรอื่น ๆ กว่า0ตามด้วยตัวแปรD
  5. การเกิดขึ้นของตัวแปรDใด ๆอาจถูกแทนที่
    • ตามตัวอักษรตัวใดตัวหนึ่งตามด้วยอินสแตนซ์อื่นของตัวแปรDหรือ
    • โดยสตริงว่าง

นี่คือวิธีที่เราได้รับ42:

S - (ใช้กฎ 4, 2 ครั้งที่แตกต่าง) → 4 D - (ใช้กฎ 5 1 เซนต์ตัวแปร) → 42 D - (ใช้กฎ 5, 2 ครั้งที่42แตกต่าง) →

ขึ้นอยู่กับว่าคุณอนุญาตให้ใช้กฎอย่างละเอียดในไวยากรณ์ของคุณได้อย่างไรเครื่องที่มีความซับซ้อนต่างกันจะต้องพิสูจน์ว่าคำที่กำหนดสามารถสร้างขึ้นได้จริงโดยไวยากรณ์ ตัวอย่างที่ให้ไว้ข้างต้นเป็นไวยากรณ์ปกติซึ่งง่ายที่สุดและมีประสิทธิภาพน้อยที่สุด ชั้นที่มีประสิทธิภาพต่อไปของไวยากรณ์จะเรียกว่าบริบทฟรี ไวยากรณ์เหล่านี้ง่ายมากในการตรวจสอบ XML (ยกเว้นว่าฉันกำลังมองเห็นคุณลักษณะที่คลุมเครือบางอย่างที่ฉันไม่ทราบ) สามารถอธิบายได้ด้วยไวยากรณ์ที่ไม่มีบริบท การจำแนกประเภทของไวยากรณ์เป็นรูปแบบของลำดับชั้นของChomskyของไวยากรณ์ (และภาษา) ทุกภาษาที่สามารถอธิบายได้ด้วยไวยากรณ์อย่างน้อยกึ่ง decidable(หรือ“ นับจำนวนซ้ำ”) นั่นคือมีเครื่องที่ให้คำที่เป็นจริงของภาษาที่ได้มาพิสูจน์ว่ามันสามารถผลิตโดยไวยากรณ์ภายในเวลาที่ จำกัด และจะไม่ส่งออกหลักฐานที่ผิด เครื่องดังกล่าวจะเรียกว่าเป็นผู้ตรวจสอบ โปรดทราบว่าเครื่องอาจไม่หยุดเมื่อได้รับคำที่ไม่ได้อยู่ในภาษาจริง เห็นได้ชัดว่าเราต้องการให้ภาษาการเขียนโปรแกรมของเราถูกอธิบายโดยไวยากรณ์ที่มีประสิทธิภาพน้อยกว่าเพื่อประโยชน์ในการปฏิเสธโปรแกรมที่ไม่ถูกต้องภายในเวลาที่ จำกัด

Schemataเป็นส่วนเพิ่มเติมของ XML ที่อนุญาตให้ปรับแต่งชุดของเอกสารที่มีรูปแบบถูกต้อง เอกสารที่มีรูปแบบที่ดีซึ่งตามหลังสคีมาบางอย่างจะเรียกว่าถูกต้องตามสคีมานั้น ตัวอย่างเช่นสตริง

<?xml version="1.0" encoding="utf-8" ?>
<root>all evil</root>

เป็นเอกสาร XML ที่มีรูปแบบถูกต้อง แต่ไม่ใช่เอกสาร XHTML ที่ถูกต้อง มีสกีมาสำหรับXHTML , SVG , XSLTและสิ่งอื่น ๆ การตรวจสอบความถูกต้องของสคีมาสามารถทำได้โดยอัลกอริทึมที่รับประกันว่าจะหยุดหลังจากจำนวนขั้นตอนที่ จำกัด สำหรับทุกอินพุต โปรแกรมดังกล่าวเรียกว่าตัวตรวจสอบความถูกต้องหรือตัวแยกวิเคราะห์ที่ตรวจสอบความถูกต้อง Schemata มีการกำหนดโดยภาษาที่เรียกว่าscemaซึ่งเป็นวิธีการกำหนดไวยากรณ์อย่างเป็นทางการ XSDเป็นภาษานิยามสกีมาอย่างเป็นทางการสำหรับ XML และเป็นตัวเองตาม XML RELAX NGเป็นทางเลือกที่หรูหรากว่าง่ายกว่าและมีประสิทธิภาพน้อยกว่า XSD เล็กน้อย

เนื่องจากคุณสามารถกำหนด schemata ของคุณเอง XML จึงเรียกว่าภาษาที่ขยายได้ซึ่งเป็นที่มาของ“ X” ใน“ XML”

คุณสามารถกำหนดชุดของกฎที่ให้การตีความเอกสาร XML เป็นคำอธิบายของโปรแกรมคอมพิวเตอร์ XSLT ที่กล่าวถึงก่อนหน้านี้เป็นตัวอย่างของภาษาการเขียนโปรแกรมที่สร้างด้วย XML โดยทั่วไปคุณสามารถจัดลำดับทรีไวยากรณ์แบบนามธรรมของภาษาการเขียนโปรแกรมเกือบทั้งหมดให้เป็น XML อย่างเป็นธรรมชาติหากนี่คือสิ่งที่คุณต้องการ


7
@Giorgio: ในวิชาคณิตศาสตร์ "ความชัดเจน" เป็นส่วนใหญ่เพียง intensifier: ทุกอย่างที่มีอยู่ทางคณิตศาสตร์มีอยู่แล้วกำหนดไว้อย่างดี
เควิน

9
@Giorgio ด้วยคำว่า "กำหนดชัดเจน" ฉันหมายถึงมีคำกริยาทางการที่บอกว่ารายการนั้นเป็นของชุดหรือไม่ เพรดิเคตโดยทั่วไปจะไม่สามารถคำนวณได้ แต่ต้องระบุอย่างชัดเจนโดยไม่ขัดแย้ง มิฉะนั้นอาจเกิดสิ่งไม่ดีขึ้นได้ “ คู่ของสายอักขระ ( w , M ) โดยที่Mเป็นคำอธิบายที่เล็กที่สุดของเครื่องทัวริงที่ส่งออกwแล้วหยุดชะงัก” เป็นคำกริยาที่ชัดเจน แต่ไม่สามารถคำนวณได้ (ดูความซับซ้อนของ Kolmogorov ) …
5gon12eder

2
@ 5gon12eder: ชุดนั้นไม่มีอยู่ภายใต้ ZFC (เนื่องจากสคีสัจพจน์ของการแยกนั้นไม่ทรงพลังพอที่จะอธิบายได้); หากคุณใช้ทฤษฎีเซตอื่นคุณควรระบุ
เควิน

5
@ 5gon12eder:“ ชุดที่มีสตริงทั้งหมดที่ไม่อยู่ในชุด” ไม่มีอยู่ คำว่า "กำหนดชัดเจน" นั้นไม่ได้กำหนดไว้อย่างชัดเจน
เควิน

3
รูปแบบที่ดีทรัพย์สินหรือการตรวจสอบจะดำเนินการโดยไวยากรณ์ คำตอบนี้ได้สมบูรณ์ถ้าคุณพูดถึงว่า
Thibault D.

31

ในวิทยาการคอมพิวเตอร์ภาษาอย่างเป็นทางการเป็นเพียงชุดของสตริงมักจะไม่มีที่สิ้นสุดและมักจะอธิบายโดยใช้กฎ (สองรุ่นทั่วไปของกฎเหล่านั้นเป็นการแสดงออกปกติและไวยากรณ์อย่างเป็นทางการ )

โปรดทราบว่านี้หมายความว่าทุกภาษาต้องถูกไวยากรณ์ภาษาไม่จำเป็นต้องอธิบายสิ่งที่แต่ละสายที่ถูกต้องหมายถึง (ที่เรียกว่าความหมาย )

ตอนนี้หมายความว่าภาษาโปรแกรมเป็นภาษาทางการที่มีความหมายซึ่งอธิบายการคำนวณบางอย่าง และตัวอย่างเช่น XHTML เป็นภาษาทางการซึ่งความหมายของคำอธิบาย (โดยประมาณและไม่เป็นทางการ) ลักษณะเอกสารและลักษณะการทำงานของไฮเปอร์เท็กซ์

XML ยังคงเป็นภาษาแม้ว่าจะไม่มีซีแมนทิกส์ (แต่หลายภาษาที่มาจาก XML ทำได้เช่น XHTML และ XAML)

ในทางเทคนิครูปแบบไบนารี่ก็เป็นภาษาเช่นกัน แต่ก็ไม่ได้เรียกแบบนั้น คำว่า "ภาษา" สงวนไว้สำหรับรูปแบบที่มนุษย์อ่านได้


10
@MrLister เพราะพวกเขาไม่สามารถอ่านได้ เมื่อพวกเขาไม่สามารถอ่านได้โดยมนุษย์เรามักจะเรียกพวกเขาว่ารูปแบบหรือรูปแบบข้อมูลแทน
Mason Wheeler

3
@ JamesSnell แน่นอนว่าอย่าสับสนกับตระกูลภาษา ML อื่น ๆ แน่นอน Yay สำหรับตัวย่อที่แออัด!
Mason Wheeler

3
หากมีการใช้เครื่องมืออย่างเป็นทางการในการสร้างเครื่องมือแยกวิเคราะห์ (หรือโดยเฉพาะอย่างยิ่งเครื่องมือตรวจสอบ) สำหรับ JFIF เป็นต้นกว่าวิศวกรอาจเรียกว่าเป็น "ภาษา" มีแนวโน้มมากขึ้นว่าเป็น "ไวยากรณ์"
JDługosz

3
@MrLister: ดีที่พวกเขามีภาษา แต่เป็นเพราะพวกเขากำหนดโครงสร้างข้อมูลที่นำมาใช้ใหม่ที่พวกเขามีชื่อพิเศษ: รูปแบบ แต่ใช่เหล่านี้เป็นภาษาด้วย
Lightness Races ในวงโคจร

4
@MrLister: การตั้งชื่อรูปแบบเป็นคำถามทางการตลาด คน XML ที่เรียกว่า XML สำหรับ XML เพราะ "* ML" หมายถึงความสัมพันธ์ในครอบครัวกับรูปแบบก่อนหน้าเช่น GML และ SGML และเพราะพวกเขาคิดว่ามันดูเท่และมี X อยู่ข้างหน้า และ GML ถูกเรียกว่า GML เพราะเป็นภาษามาร์กอัปทั่วไป แต่ก็เป็นเพราะมันเป็นตัวย่อของนักออกแบบสามภาษา ดังนั้นโดยทั่วไป L ใน XML นั้นเป็นเพราะผู้ชายที่ชื่อ Raymond L orie เป็นหนึ่งในผู้ออกแบบภาษามาร์กอัปครั้งแรก
JacquesB

12

ภาษาเป็นวิธีการถ่ายทอดข้อมูล

ภาษาการเขียนโปรแกรมเป็นวิธีการถ่ายทอดอัลกอริทึม

ภาษามาร์กอัปเช่น XML เป็นภาษาสำหรับถ่ายทอดข้อมูล


... และข้อมูลนั้นอาจเป็นคำอธิบายของอัลกอริทึมได้เป็นอย่างดี
Luaan

@Luaan ... และภาษาการเขียนโปรแกรมยังสามารถใช้ในการถ่ายทอดข้อมูล เช่นเดียวกับ JSON เช่น
ฟิลิปป์

2
คุณสามารถเรียกคืนได้ ฉันเห็นสคริปต์ NAnt (ภาษาที่ใช้ XML) ซึ่งมีรหัส C # ซึ่งใช้สำหรับการจัดเก็บข้อมูลเท่านั้น การใช้ตัวอักษรสตริงที่มี XML ใช่มันเป็นสิ่งที่ทำให้คนที่โตแล้วร้องไห้: P
Luaan

2

XML เป็นภาษาเมตา คุณใช้เพื่อกำหนดภาษาเฉพาะ ภาษาไม่เคยทำอะไรเลยพวกเขาแค่ให้เราแสดงความคิดเห็น นอกจากนี้ยังไม่เป็นความจริงที่ XML เป็น "ภาษาที่จัดเก็บ" ตรงข้ามกับที่จริงแล้ว คุณสามารถจัดเก็บเอกสาร XML ได้ตามต้องการ XML เป็นภาษาที่ถ่ายโอนได้ดีกว่า PS หากคุณไม่คิดว่า XML "ทำ" สิ่งใดคุณจะต้องอธิบายว่ามันเป็นอย่างไรระบบจำนวนมาก (เช่นท่าเทียบเรือ) ใช้ XML เป็นภาษาการเขียนโปรแกรม (ไม่ดี) มันเป็นการละเมิด XML ที่น่าเศร้า แต่มันมีอยู่จริงและนั่นก็เป็นเพียงหนึ่งในหลาย ๆ ตัวอย่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.