TinyBasic (Java, Flex, C#)

2016.05.21 11:58

졸리운_곰 조회 수:138

 

 

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

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1220 [一日30分 인생승리의 학습법] Qiskit 시작하기 (Getting Started with Qiskit) file 졸리운_곰 2025.06.03 15
1219 [一日30分 인생승리의 학습법] 양자컴퓨팅 프로그래밍 file 졸리운_곰 2025.06.03 11
1218 [一日30分 인생승리의 학습법] [Git] 다중 리모트를 사용하여 여러 Git 연동하기(Gitea, GitHub) file 졸리운_곰 2025.05.25 6
1217 [一日30分 인생승리의 학습법] [GitHub][terminal] 비밀번호 인증 에러를 토큰으로 해결하고 로그인 하기 file 졸리운_곰 2025.05.24 8
1216 [一日30分 인생승리의 학습법] [알아봅시다] 블록체인 게임들의 가능성과 미래 file 졸리운_곰 2025.04.08 28
1215 이 어지러운시대의 극복법 만화보기 file unmask 2025.04.08 54
1214 [ 一日30分 인생승리의 학습법] IT 국비교육, 쓰레기 속에서 그나마 덜 쓰레기인 곳 찾는 팁 file 졸리운_곰 2025.03.08 21
1213 [ 一日30分 인생승리의 학습법] 소프트웨어 개발하다보면 "connection reset" 등, 소프트웨어 버그 적인 문제가아닌 하드웨어나 네트워크 오류 메시지의 예 file 졸리운_곰 2025.03.01 21
1212 [ 一日30分 인생승리의 학습법] 기술부채(Technical Debt)는 소프트웨어 개발이나 프로젝트 과정에서, 약속된 것과 실제로 제공된 것 사이에 차이가 발생하는 것을 의미합니다. file 졸리운_곰 2025.01.23 31
1211 [ 一日30分 인생승리의 학습법] 고가용성(High Availability) 시스템을 위한 5가지 전략 file 졸리운_곰 2024.12.28 33
1210 [ 一日30分 인생승리의 학습법] 켈리 공식을 간단히 투자해 적용해 보자 - 켈리 크라이티리언과 확률적 사고의 중요성 file 졸리운_곰 2024.12.26 35
1209 [ 一日30分 인생승리의 학습법] [markdown] mermaid를 이용해서 UML 그리기 - 플로우차트 file 졸리운_곰 2024.12.01 49
1208 [ 一日30分 인생승리의 학습법] Mermaid.js 정리???????? file 졸리운_곰 2024.12.01 68
1207 [ 一日30分 인생승리의 학습법] Mermaid를 이용한 시퀀스 다이어그램 file 졸리운_곰 2024.12.01 33
1206 [ 一日30分 인생승리의 학습법] Mermaid - 코드로 순서도(flowchart) 그리기 file 졸리운_곰 2024.12.01 29
1205 [ 一日30分 인생승리의 학습법] 유니코드 그래픽 기호(심벌) Huge List of Unicode Symbols 졸리운_곰 2024.07.31 48
1204 [ 一日30分 인생승리의 학습법] PocketBase Attempt to simplify the serve command for prod : 포켓베이스 프로덕션 포트 도메인 네임 설정 졸리운_곰 2024.06.10 73
1203 [ 一日30分 인생승리의 학습법] google spreadsheet app script 로 코인 현황 : 거래소 API 접근할 때 알아두면 좋은 함수 file 졸리운_곰 2024.06.08 62
1202 [ 一日30分 인생승리의 학습법] 매크로 프로그램 정리 졸리운_곰 2024.06.08 90
1201 [ 一日30分 인생승리의 학습법] 스마트스토어 vs 아임웹 vs 카페24 file 졸리운_곰 2024.05.16 79
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED