TinyBasic (Java, Flex, C#)

2016.05.21 11:58

졸리운_곰 조회 수:118

 

 

TinyBasic (Java, Flex, C#)

 

TinyBasic.tar.gz

TinyBasic.tar.gz

TinyBasic.tar.gz

Introduction

Tiny Basic is my port of Tom Pittmans's TinyBasic C rewrite to Java, C# and Flex/Actionscript. When I learn a new language/platform (in this case Adobe Flex), I always try to think of an outlandish first project to keep my interest level high and this was it. Those that know me also know that the TRS-80 was my first computer and I have a weakness for the early versions of BASIC and those books and magazines where you type in your own programs and games from the code listings.

For grins, I also decided to create Java and C# versions so I could mentally compare and contrast them.

Technical Details

Tom Pittman's C version is of course a console application. When porting this, I could have opted for the approach I followed in my Mips2Java port and have a "console" thread and GUI thread which piped input and output to each other bidirectionally. I thought this was overkill, though, (and it was out of the question for Flash/Flex, which is single-threaded). Instead, I opted to rework the interpreter loop, causing it to return if it either needed more input or if it had executed a predetermined number of instructions. The GUI would set a 250ms repeating timer which would re-enter the interpreter loop if it wasn't waiting on input. Finally, the text area would trap the enter key and re-enter the interpreter if it was waiting for more input and if more input was available. This would give the illusion of multithreading with only one thread.

The fact that I was able to do this in Java, Flex and C# kind of shows that in the end, things that seem different on the surface are just variations of the same theme. My understanding of how to do multithreaded GUI programming (have worker threads call the GUI thread asynchronously) has its roots in my Windows C++/MFC days and applies equally to Java (Swing and SWT) and C#. My understanding of how to use timer tasks to simulate multithreading also has its roots in my C++/MFC days. To me, coding in different languages and platforms is like traveling to different countries and speaking different foreign languages to people who in the end, are just as universally human as I am.

Java Version

Click here to see the Java applet.

TinyBasicJ.jpg

 


Java Version

Adobe Flex Version

Click here to see the Adobe Flex version.

TinyBasicAS.jpg

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com


Adobe Flex Version

C# Version

Click here for the C# version.

TinyBasicNET.jpg

 


C# Version

Sample BASIC Programs

Click here for the Tiny Basic User's Guide and sample programs you can copy and paste into the interpreter window.

 

Sources

I'm making the Java, C# and Flex/Actionscript sources available without precondition. This is as a token of gratitude to Tom Pittman for making his TinyBasic sources available, as well as to countless people who have selflessly provided programming answers and advice on the Internet.

If you need help or have questions about any of these platforms, feel free to purchase my consulting time with my easy-to-use web interface. (Shameless marketing plug: people with both my breadth and depth of knowledge are hard to come by; my experience with a wide variety of programming languages and environments might give you the perspective you need for your project.)

Sources: TinyBasic.tar.gz

If you enjoy this...

Would you consider visiting one or more of the following websites?

Enjoy!

 

[출처] https://www.thisiscool.com/tinybasic.htm

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1195 [ 一日30分 인생승리의 학습법] VBA Web Scraping: How Can VBA Be Used To Scrape Website Data? file 졸리운_곰 2024.04.13 3
1194 [ 一日30分 인생승리의 학습법] 윈도우 실행파일 구조(PE파일) file 졸리운_곰 2024.03.31 3
1193 [ 一日30分 인생승리의 학습법] [Analysis] PE(Portable Executable) 파일 포맷 공부 file 졸리운_곰 2024.03.31 3
1192 [ 一日30分 인생승리의 학습법] 성공하는 메타버스의 3가지 조건 file 졸리운_곰 2024.03.30 7
1191 [ 一日30分 인생승리의 학습법] REST, REST API, RESTful 과 HATEOAS file 졸리운_곰 2024.03.10 9
1190 [ 一日30分 인생승리의 학습법] 렌더링 삼형제 CSR, SSR, SSG 이해하기 file 졸리운_곰 2024.03.10 2
1189 [ 一日30分 인생승리의 학습법] 엑셀 VBA에서 셀레니움 사용을 위한 Selenium Basic 설치 file 졸리운_곰 2024.02.23 11
1188 [ 一日30分 인생승리의 학습법]500 Lines or Less Blockcode: A Visual Programming Toolkit : 500줄 이하의 블록코드: 시각적 프로그래밍 툴킷 졸리운_곰 2024.02.12 4
1187 [ 一日30分 인생승리의 학습법] 구글 클라이언트(앱) 아이디를 발급받으려면 어떻게 해야 하나요? 졸리운_곰 2024.01.28 3
1186 [ 一日30分 인생승리의 학습법] 빅뱅 프로젝트를 성공적으로 오픈하기 위한 팁 졸리운_곰 2023.12.27 16
1185 [ 一日30分 인생승리의 학습법]“빅뱅 전환보다 단계적 전환 방식이 이상적 애자일팀과 협업 쉽게 체질 개선을” file 졸리운_곰 2023.12.27 12
1184 [ 一日30分 인생승리의 학습법] Big-bang / phased 접근 file 졸리운_곰 2023.12.27 3
1183 [ 一日30分 인생승리의 학습법] CodeDragon 메뉴 데이터 전환의 개념 이해 - 데이터 전환의 개념, 데이터 전환방식, 데이터 전환방식 및 장단점 비교, 데이터전환 이후 검토해야 할 사항 졸리운_곰 2023.12.27 5
1182 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템 file 졸리운_곰 2023.12.27 6
1181 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 개념과 리뷰 시스템 file 졸리운_곰 2023.12.27 4
1180 [ 一日30分 인생승리의 학습법] 소켓 CLOSE_WAIT 발생 현상 및 처리 방안 file 졸리운_곰 2023.12.03 7
1179 [ 一日30分 인생승리의 학습법] robots 설정하기 졸리운_곰 2023.12.03 3
1178 [ 一日30分 인생승리의 학습법] A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators : 로봇 휠 액츄에이터의 차동 조향 시스템에 대한 튜토리얼 및 기본 궤적 모델 file 졸리운_곰 2023.11.29 6
1177 [ 一日30分 인생승리의 학습법] Streamline Your MLOps Journey with CodeProject.AI Server : CodeProject.AI 서버로 MLOps 여정을 간소화하세요 file 졸리운_곰 2023.11.25 2
1176 [ 一日30分 인생승리의 학습법] Comparing Self-Hosted AI Servers: A Guide for Developers / : 자체 호스팅 AI 서버 비교: 개발자를 위한 가이드 file 졸리운_곰 2023.11.25 10
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED