กลับไปหน้าบทความ

อ่าน 4 นาที

วิลนีอุส บาซิก

ภาษาโปรแกรมพื้นฐาน/ตระกูลภาษาการเขียนโปรแกรม BASIC/CS1 แหล่งที่มาภาษารัสเซีย (ru)/คอมพิวเตอร์ในสหภาพโซเวียต/BASIC ที่เลิกผลิตแล้ว/ภาษาโปรแกรมที่สร้างขึ้นในปี 1986/สิ่งประดิษฐ์ของสหภาพโซเวียต/มหาวิทยาลัยวิลนีอุส

ภาษา วิลนีอุสบาซิก (Vilnius BASIC) หรือบางครั้งเรียกว่าบีเคบาซิก (BK BASIC ) เป็นภาษาโปรแกรมบาซิก เวอร์ชันหนึ่ง ที่ทำงานบน คอมพิวเตอร์ Elektronika

วิลนีอุส บาซิก

วิลนีอุสเบสิก
กระบวนทัศน์เชิงบังคับ , เชิงอัลกอริทึม
ปรากฏครั้งแรกพ.ศ. 2529 ( 1986 )
ภาษาถิ่น
BASIC -86, BASIC-88
ได้รับอิทธิพลจาก
เอ็มเอสเอ็กซ์ เบสิก
ได้รับอิทธิพล
ไม่มี
Vilnius BASIC บน BK-0010-01

ภาษา วิลนีอุสบาซิก (Vilnius BASIC) หรือบางครั้งเรียกว่าบีเคบาซิก (BK BASIC ) เป็นภาษาโปรแกรมบาซิก เวอร์ชันหนึ่ง ที่ทำงานบน คอมพิวเตอร์ Elektronika BK-0010-01/BK-0011MและUKNCภาษานี้ได้รับการพัฒนาขึ้นที่มหาวิทยาลัยวิลนีอุสในประเทศ ลิทั วเนีย ซึ่ง ในขณะนั้น เป็นสาธารณรัฐหนึ่งของสหภาพโซเวียต

แตกต่างจากภาษา BASIC ส่วนใหญ่ ใน ไมโครคอมพิวเตอร์ในยุคนั้น ซึ่งเป็นภาษาแบบตัวแปลภาษา (interpreter ) Vilnius BASIC เป็น ภาษาแบบคอมไพล์และทำงาน (compile and go)ที่จะคอมไพล์ซอร์สโค้ดเมื่อผู้ใช้ป้อนRUNคำสั่ง โดยทั่วไปแล้วมันคล้ายกับGW-BASICและMSX BASICทั้งในด้านรูปแบบและคุณสมบัติส่วนใหญ่ แม้ว่าจะขาดคำสั่งมัลติมีเดียบางอย่างที่พบใน MSX ก็ตาม สิ่งหนึ่งที่แปลกคือ มันไม่อนุญาตให้มีคำสั่งมากกว่าหนึ่งคำสั่งในบรรทัดเดียว ซึ่งเป็นคุณสมบัติที่ปกติใช้เครื่องหมายโคลอน (:) นอกจากนี้ยังขาดความสามารถในการเปิดไฟล์ข้อมูลมากกว่าหนึ่งไฟล์พร้อมกัน

เฉพาะเวอร์ชัน UKNC เท่านั้นที่มีโปรแกรมแก้ไขแบบเต็มหน้าจอส่วนเวอร์ชันของเครื่องซีรีส์ 0010 ใช้โปรแกรมแก้ไขแบบบรรทัดต่อบรรทัด คุณสมบัติเฉพาะของแต่ละเครื่องเช่น ตัวดำเนินการกราฟิก พารามิเตอร์ และPEEK/POKEที่อยู่ ก็แตกต่างกันไปในแต่ละเครื่องด้วย

คำอธิบาย

การแก้ไขโปรแกรม

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

ในช่วงปลายทศวรรษ 1970 ระบบไมโครคอมพิวเตอร์ส่วนใหญ่มีโปรแกรมแก้ไขแบบเต็มหน้าจอ ซึ่งผู้ใช้สามารถใช้ปุ่มลูกศรเพื่อเลื่อนไปมาในโปรแกรมและพิมพ์แก้ไขลงในบรรทัดโค้ดที่มองเห็นได้ ระบบ Electronica จำลองการทำงานของPDP-11ซึ่งเป็นเครื่องที่สร้างขึ้นในยุคก่อนที่เทอร์มินัลคอมพิวเตอร์ ที่สามารถใช้เคอร์เซอร์ได้ จะแพร่หลาย ดังนั้นจึงยังคงใช้ รูปแบบ โปรแกรมแก้ไขแบบบรรทัด เก่า ในระบบเหล่านี้ จะมีข้อความแจ้งแสดงขึ้นเพื่อให้ผู้ใช้พิมพ์โค้ดหนึ่งบรรทัด หรือเรียกดูบรรทัดที่พิมพ์ไว้ก่อนหน้านี้แล้วแก้ไขในตำแหน่งเดิมได้

คำสั่งและข้อความ

รายการคำสำคัญที่รองรับในวิลนีอุสสามารถแบ่งออกเป็นสองกลุ่ม ได้แก่ คำที่ใช้ได้เฉพาะในโหมดตรง และคำที่สามารถใช้ได้ทั้งแบบตรงและแบบอ้อม

คำสั่งแบบแรก ซึ่งรู้จักกันในชื่อคำสั่งทั่วไป ได้แก่CONT, LIST, NEW, RUNการCLOAD and CSAVEโหลดและบันทึกโปรแกรมลงเทปคาสเซ็ตการAUTOเปิดใช้งานการป้อนหมายเลขบรรทัดอัตโนมัติRENUMการกำหนดหมายเลขบรรทัดใหม่ในโปรแกรมปัจจุบัน และDELETEการลบช่วงของบรรทัดโดยใช้รูปแบบ "ถึง" เดียวกันกับคำสั่ง LIST ตัวอย่างเช่น คำสั่ง LIST DELETE -200จะลบทุกอย่างตั้งแต่ต้นโปรแกรมจนถึงบรรทัดที่ 200

คำสั่งพื้นฐานของ Vilnius คล้ายคลึงกับภาษา BASIC อื่นๆ ในยุคนั้น และรองรับคำสั่งพื้นฐานส่วนใหญ่ เช่นDATA, DEF FN, DIM, END, FOR..TO..STEP..NEXT , GOSUB , GOTO , IF..THENโดยมี ELSE, INPUT, LET (เป็นตัวเลือกเสริม), LIST, PRINT, ON...GOTO และ ON...GOSUB, READ, REM , RESTORE, RETURN , STOPเป็นตัวเลือกเสริม แต่แตกต่างจากภาษา BASIC ส่วนใหญ่ Vilnius ไม่อนุญาตให้มีคำสั่งมากกว่าหนึ่งคำสั่งต่อบรรทัด

ตัวแปรเชิงตัวเลข ตัวดำเนินการ และฟังก์ชัน

เช่นเดียวกับภาษาถิ่นส่วนใหญ่ ชื่อตัวแปรต้องขึ้นต้นด้วยตัวอักษร และอาจตามด้วยตัวอักษรหรือตัวเลขเพิ่มเติมได้ ชื่อตัวแปรสามารถมีความยาวเท่าใดก็ได้ แต่จะเก็บหรือจับคู่เฉพาะอักขระสองตัวแรกเท่านั้น ซึ่งหมายความว่าการพิมพ์PRT001=1ตามด้วยตัวPR=5อักษรจะทำให้ได้ตัวแปรเดียวในหน่วยความจำที่เรียกว่า PR โดยมีค่าเป็น 5

ภาษา Vilnius BASIC มีชนิดข้อมูลพื้นฐานสี่ชนิด ได้แก่ สตริง ตัวเลข ทศลอย แบบ ความแม่นยำเดี่ยวและความแม่นยำคู่และจำนวนเต็ม เว้นแต่จะระบุไว้เป็นอย่างอื่น ตัวแปรจะถือว่าเป็นแบบความแม่นยำคู่ จัดเก็บในแปดไบต์ และมีความแม่นยำประมาณ 17 หลัก สำหรับการเปรียบเทียบ ภาษา MS ส่วนใหญ่ใช้รูปแบบ 5 ไบต์สำหรับตัวเลขทศลอย หาก!มีคำต่อท้ายชื่อตัวแปร ค่าจะถูกจัดเก็บในแบบความแม่นยำเดี่ยวโดยใช้สี่ไบต์ที่มีความแม่นยำประมาณ 7 หลัก %ระบุจำนวนเต็ม โดยใช้คำ 16 บิตเดียวในการจัดเก็บค่าระหว่าง -32768 และ +32767 หากกำหนดค่าที่มีความแม่นยำมากกว่าให้กับตัวแปรที่มีความแม่นยำน้อยกว่า ส่วนเกินจะถูกทิ้งไปA%=1.5จะทำให้ A% มีค่าเป็น 1

ค่าคงที่ตัวเลขในซอร์สโค้ดสามารถระบุเป็นชนิดข้อมูลเฉพาะได้โดยใช้ตัวบ่งชี้เดียวกัน เช่น50%จะเก็บค่าคงที่นั้นเป็นจำนวนเต็ม0.05!หรือ5E-02เก็บค่าความแม่นยำเดี่ยว 0.05 และ0.05/หรือ5D-02เก็บค่าเดียวกันนั้นในรูปแบบความแม่นยำคู่แบบมาตรฐาน นอกจากนี้ Vilnius ยังมีความสามารถเพิ่มเติมในการอนุญาตให้ป้อนค่าคงที่ตัวเลขเป็นสตริงของอักขระไบนารีฐานแปดหรือ ฐาน สิบหกโดยการใส่เครื่องหมาย& นำหน้าสตริง และตามด้วยตัวอักษรตัวเดียวที่ระบุชนิดข้อมูล เช่น B, O, H ตัวอย่างเช่นจะแปลงสตริงฐานสิบหก H9A8B เป็นค่าทศนิยมที่เทียบเท่า 39563 และเก็บค่านั้นไว้ในตัวแปร A A=&H9A8B

ตัวดำเนินการสำหรับค่าตัวเลข ได้แก่+, -, *, /, ^การบวก\สำหรับการหารจำนวนเต็ม และMODการหาเศษเหลือ ดังนั้น5\2จะคืนค่า 2 ในขณะที่5 MOD 2จะคืนค่า 1 ฟังก์ชันตัวเลข ได้แก่ ฟังก์ชันมาตรฐานABS, ATN, COS, EXP, INT, LOG, RND, SGN, SIN, SQR, TANนอกจากนี้ยังรวมถึงFIXตัวดำเนินการ ซึ่งคล้ายกับINTแต่จะตัดเศษเหลือออกไปทางศูนย์เสมอ ดังนั้นFIX(-1.5)จะคืนค่า -1 แทนที่จะเป็น -2 เหมือนกับ INT

นอกจากPEEK และ POKEซึ่งส่งค่า 16 บิตกลับมาแล้ว ระบบยังเสนอOUT and INPซึ่งคล้ายกันแต่ใช้บิตมาสก์กับค่าเพื่อให้สามารถตั้งค่าหรือล้างบิตแต่ละบิตได้[ 1 ]CLSล้างหน้าจอ ฟังก์ชันของระบบประกอบด้วยFREซึ่งส่งคืนปริมาณหน่วยความจำว่าง และTABซึ่งย้ายไปยังคอลัมน์ที่กำหนดAT (x,y)ทำงานในลักษณะคล้ายกับ TAB แต่ย้ายเคอร์เซอร์ไปยังตำแหน่ง X,Y ที่กำหนด

สตริง

การต่อท้ายตัวแปรด้วย$บ่งชี้ว่าเป็นสตริง ฟังก์ชันสตริงประกอบด้วยฟังก์ชันทั่วไป ฟังก์ชัน ASC, CHR$, LEN, STR$, VALนี้STRING$สร้างสำเนาของสตริงรูปแบบที่กำหนด ดังนั้นA$=STRING$(17, "X")จะสร้างสตริงที่มี X จำนวน 17 ตัว[ 2 ]มีเพียงฟังก์ชันการจัดการเพียงฟังก์ชันเดียว คือMID$ซึ่งทำงานเหมือนใน MS แต่ยังสามารถใช้เพื่อแทนที่อักขระในสตริงที่มีอยู่ได้MID$(A$,1,1)="Y"จะแทนที่ตัวอักษรตัวแรกของ A$ ด้วย Y INKEY$ส่งคืนปุ่มปัจจุบันที่กดบนแป้นพิมพ์ หากมี[ 3 ]+ถูกใช้สำหรับการเชื่อมต่อสตริงเช่นเดียวกับในภาษาถิ่นส่วนใหญ่

ฟังก์ชัน เหล่านี้HEX$, OCT$ and BIN$จะส่งคืนสตริงที่เข้ารหัสค่าที่ส่งเข้ามา ตัวอย่างเช่นPRINT HEX$(255)จะส่งคืนค่า FF ในขณะที่PRINT BIN$(255)จะส่งคืนค่า 0000000011111111

การเพิ่มเติมกราฟิก

ระบบ Electronica มีระบบ สนับสนุน กราฟิกคอมพิวเตอร์และภาษา Vilnius BASIC ก็มีคำสั่งหลายคำสั่งสำหรับการทำงานกับกราฟิก คุณสมบัติที่น่าสนใจอย่างหนึ่งของระบบนี้คือ พิกัด X,Y จะถูกเขียนไว้ในวงเล็บ ระบบจะจดจำจุดที่ระบุล่าสุด และสามารถระบุตำแหน่งใหม่ได้ด้วยเครื่องหมายจุลภาค@ตัวอย่างเช่น หากคำสั่งวาดล่าสุดอยู่ที่ (100,100) เราสามารถเปลี่ยนพิกเซลที่ (105,105) ให้เป็นสี 3 ได้ด้วยเครื่องหมายจุลภาคPSET @(5,5),3มีค่าสีห้าค่า ตั้งแต่ 0 ถึง 3

นอกจากนี้PSETเรายังสามารถลากเส้นจากจุดหนึ่งไปยังอีกจุดหนึ่งโดยใช้พิกัดคู่หนึ่งที่คั่นด้วยเครื่องหมายลบ คล้ายกับคำสั่ง LIST เป็นต้นLINE (100,100)-(120,120),3ในรูปแบบที่ง่ายที่สุด คำ CIRCLEสั่งนี้จะรับพิกัด X,Y สำหรับจุดศูนย์กลาง รัศมี และสีCIRCLE (120,120),30,1นอกจากนี้ยังสามารถวาดส่วนโค้งจากมุมเริ่มต้นและมุมสิ้นสุดที่กำหนดในหน่วยเรเดียนCIRCLE (120,120),30,1,0,1.5และสามารถ "บีบ" แกนแนวตั้งเพื่อสร้างวงรีได้ คำสั่งนี้CIRCLE (100,100),20,1,,,0.4จะPAINT (100,100),3,1ทำการเติมสีโดยเริ่มจาก (100,100) เติมด้วยสี 3 และเคลื่อนที่ออกไปด้านนอกจนกระทั่งพบสี 1

สุดท้ายนี้ มีคำสั่งอเนกประสงค์DRAWคำสั่งนี้รับสตริงที่เข้ารหัสขั้นตอนการวาดหลายขั้นตอน ซึ่งสามารถสร้างรูปทรงที่ซับซ้อนได้ในบรรทัดเดียว ทิศทางหลักทั้งสี่ระบุด้วย U, D, L และ R (ขึ้น ลง ซ้าย ขวา) มุม 45 องศา เรียงตามเข็มนาฬิกาคือ E (ขึ้นขวา), F, G และ H (ขึ้นซ้าย) ตัวอย่างเช่นDRAW "R20D20L20U20"จะสร้างสี่เหลี่ยมจัตุรัสที่มีด้านยาว 20 พิกเซล โดยเริ่มจากตำแหน่งที่วาดล่าสุด นอกจากทิศทางแล้ว คำสั่ง M ยังสามารถใช้เพื่อระบุพิกัดที่ชัดเจน เช่น "M100,120" ซึ่งไม่จำเป็นต้องมีวงเล็บ C เปลี่ยนสี B ย้ายโดยไม่วาดเส้น และ N รีเซ็ตพิกัดกลับไปเป็นค่าเดิมก่อนใช้คำสั่ง DRAW

มีฟังก์ชันกราฟิกเพียงฟังก์ชันเดียวPOINT(x,y)ซึ่งจะส่งคืนค่าหมายเลขของสี ณ ตำแหน่งนั้นบนหน้าจอ

ตัวอย่างโปรแกรม

1 ซีแอลเอส 2 สำหรับ X% = 30% ถึง 1% ขั้นละ -2% 3 ? AT(X%,1%);"*" 4 ? AT(X%,20%);"*" 5 ถัดไป X% 

โปรแกรมนี้จะล้างหน้าจอ สร้างลูปตามค่าจำนวนเต็ม จากนั้นใช้ATคำสั่งเพื่อเลื่อนเคอร์เซอร์สลับไปมาระหว่างค่า Y 1 และ 20 โดยพิมพ์เครื่องหมายดอกจัน (?) ที่ทั้งสองตำแหน่ง ผลลัพธ์ที่ได้คือชุดเครื่องหมายดอกจัน 30 ตัวในสองบรรทัดแนวนอน

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Vilnius_BASIC&oldid=1327126316 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ วิลนีอุส บาซิก

ภาษา วิลนีอุสบาซิก (Vilnius BASIC) หรือบางครั้งเรียกว่าบีเคบาซิก (BK BASIC ) เป็นภาษาโปรแกรมบาซิก เวอร์ชันหนึ่ง ที่ทำงานบน คอมพิวเตอร์ Elektronika

การแก้ไขโปรแกรม

แตกต่างจากภาษา BASIC ส่วนใหญ่ในยุคนั้น Vilnius BASIC เป็น ระบบ คอมไพล์และทำงานทันที ไม่ใช่ ระบบล่าม เมื่อผู้ใช้พิมพ์คำสั่ง RUN คอมไพเลอร์จะอ่านโค้ดและสร้าง ไฟล์ปฏิบัติการแบบมัลติเธรด จากนั้นจึงเรียกใช้งาน อย่างไรก็ตาม...

คำสั่งและข้อความ

รายการคำสำคัญที่รองรับในวิลนีอุสสามารถแบ่งออกเป็นสองกลุ่ม ได้แก่ คำที่ใช้ได้เฉพาะในโหมดตรง และคำที่สามารถใช้ได้ทั้งแบบตรงและแบบอ้อม

ตัวแปรเชิงตัวเลข ตัวดำเนินการ และฟังก์ชัน

เช่นเดียวกับภาษาถิ่นส่วนใหญ่ ชื่อตัวแปรต้องขึ้นต้นด้วยตัวอักษร และอาจตามด้วยตัวอักษรหรือตัวเลขเพิ่มเติมได้ ชื่อตัวแปรสามารถมีความยาวเท่าใดก็ได้ แต่จะเก็บหรือจับคู่เฉพาะอักขระสองตัวแรกเท่านั้น ซึ่งหมายความว่าการพิมพ์ PRT001=1 ตามด้วยตัว PR=5...