Yabasic#Yab
{{short description|Interpreter for BASIC software}}
{{Infobox programming language
| name = Yabasic
| screenshot = Samegame yabasic example.png
| screenshot caption = Yabasic running an implementation of SameGame.
| developer = Marc-Oliver Ihm
| discontinued = Yesn't
| latest_release_version = 2.91.2{{cite web | url=http://2484.de/yabasic/whatsnew.html | title=Yabasic, Yet another Basic for Unix and Windows }}
| latest_release_date = {{Start date and age|df=yes|2025|03|23}}
| operating_system = Microsoft Windows, Unix, PS2
| file_ext = .bas
,.yab
| license = MIT License
| website = Website: {{URL|www.yabasic.de}}
Repository: {{URL|https://github.com/marcIhm/yabasic}}
}}
Yabasic (Yet Another BASIC) is a free, open-source BASIC interpreter for Microsoft Windows and Unix platforms.{{cite web|author=Marc-Oliver Ihm |url=http://www.yabasic.de |title=Yabasic, Yet another Basic for Unix and Windows |publisher=Yabasic.de |access-date=2013-04-22}} Yabasic was originally developed by Marc-Oliver Ihm, who released the last stable version 2.91.2 in 2025. From version 2.77.1, the project has adopted the MIT License as well as the source code being moved to GitHub to encourage others to participate in its development.{{Citation|last=Ihm|first=Marc|title=marcIhm/yabasic|date=2020-04-03|url=https://github.com/marcIhm/yabasic|access-date=2020-04-21}}
Features
- No line numbers (they can be used but are optional)
- Line graphics in color
- Structured programming—various block structures, named subroutines with local variables and return values
- Code modules/libraries with separate namespaces (On the other hand, composite data structures are missing)
- Option to use a graphical user interface based on the GTK library
- Self-modifying code
- "Binding" a Yabasic program to the interpreter, creating a standalone executable in a single file
Other versions
=Yab=
A version optimized for BeOS, ZETA and Haiku.{{cite web|url=https://besly.de/index.php/development/yab-2/yab-beginners-tutorial|first=Christian|last=Albrecht|title=yab Beginners tutorial|website=BeSly - BeOS, Haiku & Zeta|date=2022-10-02|access-date=2024-02-25|others=Translation by Luc Schrijvers (Begasus)}}
= Flyab =
A port of Yabasic to the Fltk toolkit called "Flyab" was under development. It would have been source-compatible with programs written in yab, a variant of Yabasic that enables graphical programs to be written using the BeOS API. After BeOS and its successor ZETA finally were gone, the team members around yab for BeOS decided to move to Linux and therefore chose FLTK to implement the UI parts. Ports for Microsoft Windows, Mac OS X, and Linux would have been possible. Flyab added the ability to Yabasic to create native graphical user interfaces on all supported platforms. Main difficulty was to fully implement the layout commands to FLTK, as used from the BeOS version. {{Citation needed|date=September 2011}} As of November 2008, the project appears to be halted.
=PlayStation 2=
Sony also packaged a version of Yabasic for the PlayStation 2 on the demo discArchived at [https://ghostarchive.org/varchive/youtube/20211211/ZnXpzczPc38 Ghostarchive]{{cbignore}} and the [https://web.archive.org/web/20200229101139/https://www.youtube.com/watch?v=ZnXpzczPc38 Wayback Machine]{{cbignore}}: {{Citation|last=Cameron Gray|title=How/Why Sony Classed the PlayStation 2 as a Home Computer - Demo of Yabasic|date=2018-02-26|url=https://www.youtube.com/watch?v=ZnXpzczPc38|access-date=2018-02-26}}{{cbignore}} shipped with PS2 consoles in PAL territories so it could be considered a home computer, not just a games machine, thus bypassing European import taxes.{{cite web|last1=Smith|first1=Tony|title=Sony adds Basic to PlayStation to sidestep EC import tax|website=The Register |url=https://www.theregister.co.uk/2000/11/07/sony_adds_basic_to_playstation/|date=2000-07-11|access-date=8 September 2014}}
=Yabasic 3.0 (Unofficial)=
As a continuation of the project prior to new changes by the original author, version 3 was being developed by a team centered on Pedro Sá and Thomas Larsen, but development has halted and the project now appears to be abandoned.{{Citation needed|date=March 2019}}
Yabasic example
- !/usr/bin/yabasic
REM Program Name: cbm-mtudemo.yab
REM Author: mtu
REM
REM Purpose: demonstration for their CBM-PET graphics card 320x200
open window 320, 200
20 P=160: Q=100
30 XP=144: XR=1.5*3.1415927
40 YP=56: YR=1: ZP=64
50 XF=XR/XP: YF=YP/YR: ZF=XR/ZP
60 FOR ZI=-Q TO Q-l
70 IF ZI<-ZP OR ZI>ZP GOTO 150
80 ZT=ZI*XP/ZP: ZZ=ZI
90 XL=INT(0.5+SQRT(XP*XP-ZT*ZT))
100 FOR XI=-XL TO XL
110 XT=SQRT(XI*XI+ZT*ZT)*XF: XX=XI
120 YY=(SIN(XT)+0.4*SIN(3.0*XT))*YF
130 GOSUB 170
140 NEXT XI
150 NEXT ZI
160 PAUSE 10
END
170 X1=XX+ZZ+P
180 Y1=YY-ZZ+Q:Y1=199-Y1
190 LINE X1,Y1,X1,Y1-1
200 IF Y1=0 GOTO 220
210 CLEAR LINE X1,Y1+1,X1,199
220 RETURN
References
{{reflist}}
External links
- {{Official website|www.yabasic.de}} — Downloads and documentation for Yabasic 2.90.2
- [https://github.com/marcIhm/yabasic/ Yabasic GitHub] — Source code for Yabasic on GitHub.
{{Use dmy dates|date=March 2020}}
{{BASIC}}
Category:Articles with example BASIC code
Category:BASIC programming language family
Category:Software using the MIT license
Category:Free and open source interpreters
Category:Procedural programming languages
Category:Linux programming tools