Author Topic: TBEXE - Pre-alpha feature requests  (Read 14155 times)

0 Members and 1 Guest are viewing this topic.

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #15 on: July 19, 2011, 12:38:25 am »
OH. Okay, now completely understand what you're doing. Gotcha. Wow, yeah, that's very similar to what I'm doing lol. I'm (de)tokenizing because TBEXE is also going to be a BASIC-IDE. Instead of directly interpreting the BASIC code like you are, I'm just going to see which commands will be needed, add them if they are, and convert the entire thing into C# or VB and use System.CodeDom, etc. to build that file into a .NET-based executable.

Your idea is very nifty too ;)

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #16 on: July 19, 2011, 12:43:40 am »
Perhaps for comma based Disp's you could just write a new line?

I don't know Python, but in C# you could interpret
Code: [Select]
Disp "Hello","World"
as
Code: [Select]
Disp "Hello" + "\n" + "World"

Offline lunixbochs

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 13
  • Rating: +1/-0
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #17 on: July 19, 2011, 12:50:13 am »
Perhaps for comma based Disp's you could just write a new line?

I don't know Python, but in C# you could interpret
Code: [Select]
Disp "Hello","World"
as
Code: [Select]
Disp "Hello" + "\n" + "World"

right, but what happens when I do this? :)
Code: [Select]
Disp "Hello", 1I got it anywho, the test passes now.

you understand it'll be very hard to implement some of the quirks of TI-BASIC without an interpreter or specialized virtual machine, right?

my goal:
given an existing TI-BASIC program that runs on a calculator, execute it as identically as possible except for speed.
with this, I should be able to take any program from ticalc.org and run it verbatim

it sounds close enough to what you're doing, I still think we could work together (unless you have some really good ideas for translating BASIC's quirks to CLR)
« Last Edit: July 19, 2011, 12:55:27 am by lunixbochs »

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #18 on: July 19, 2011, 12:56:22 am »
you understand it'll be very hard to implement some of the quirks of TI-BASIC without an interpreter or specialized virtual machine, right?
But of course! That is where my .exe "engine" and my misc. come in to play. Also, like I said in my OP, not all commands will be supported (mainly the statistics ones, such as T-Tests), at least on the first major release; some may have different syntax, and some might do different things. Don't worry about me on that part ;)

P.S. - If you look at the TBEXE "spoiler" in my signature, you'll see there are 4 parts that make up TBEXE. The .exe engine will take the longest, which is mainly why I haven't started it yet lol.

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #19 on: July 19, 2011, 01:00:09 am »
Perhaps for comma based Disp's you could just write a new line?

I don't know Python, but in C# you could interpret
Code: [Select]
Disp "Hello","World"
as
Code: [Select]
Disp "Hello" + "\n" + "World"

right, but what happens when I do this? :)
Code: [Select]
Disp "Hello", 1
...

it sounds close enough to what you're doing, I still think we could work together (unless you have some really good ideas for translating BASIC's quirks to CLR)
...1.ToString()  xD Anyway, don't mind me, I need to hit the hay soon lol.

It's quite close to what I'm doing, and I would love for us to work together. The only "really good" idea imo is the accessibility to WinForms.

Offline lunixbochs

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 13
  • Rating: +1/-0
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #20 on: July 19, 2011, 01:17:08 am »
That is where my .exe "engine" and my misc. come in to play.
my entire project right now is simulating the basic interpreter, which sounds like what you'd be doing in your EXE engine. You could embed Python at this point instead of writing your own VM.

I just got functions working. The next step is a Block stack, then skip/goto ability and I'll have most of the interpreter done, sans the actual token behaviors (which are all separate and self-contained)
« Last Edit: July 19, 2011, 01:18:03 am by lunixbochs »

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #21 on: July 19, 2011, 01:26:56 am »
That is where my .exe "engine" and my misc. come in to play.
my entire project right now is simulating the basic interpreter, which sounds like what you'd be doing in your EXE engine. You could embed Python at this point instead of writing your own VM.

Yeah, you're right. Let me sleep on it and I'll think about how I can integrate it. Sounds fun! :D

Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #22 on: July 19, 2011, 03:41:35 am »
Nice project, BlakPilar. Have you considered using a bytecode parser as the base of your compiler? TI-BASIC is very close to bytecode with the pre-tokenized functions, so it'd probably save a lot of work.

Request: Full math support. I know it's kind of obvious, but sometimes it annoys me to waste time writing simple functions (that take a long time to execute on-calc) in PC math languages that could be done very quickly in TI-BASIC.

Also, the ability to call external programs would be nice.
« Last Edit: July 19, 2011, 03:44:59 am by Qwerty.55 »
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #23 on: July 19, 2011, 11:03:16 am »
Thanks Qwerty! I have actually considered bytecode for this project, which would make the resulting programs cross-platform if I remember bytecode correctly? However, I don't know how I could access forms through bytecode compilation.

For math support, I fully intend to implement order of operations and as many of the math functions as quickly and simply as possible for speed. The only things I'm a bit iffy on are some of the "complex" statistics functions, such as T-Tests.

Calling external programs wouldn't be hard at all. I was also thinking about having the ability to port sub-programs for the on-calc versions into classes for the on-comp version and vice versa for more customizability, such as overloading.

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #24 on: July 19, 2011, 01:48:13 pm »
Well lunixbochs, I was thinking about it and my .exe engine is really a conversion-to-c# engine and I just use .NET's built-in assembling techniques to compile that converted code. I um... I kinda lied when I said I knew exactly what you interpreter did. You interpret what's going on in the program and execute it in Python? If that's it then yes, that's almost exactly my .exe engine. If we worked together, which would be awesome, we would have to modify that to execute the commands in C#, or learn more on executing Python inside of C#. The conversion, if we do that, or just using your interpreter shouldn't be that hard because I just added a direct-byte manipulation feature and I have a function that will convert a byte-string into a byte (i.e. "2A" will be turned into 0x2A).

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #25 on: July 19, 2011, 03:50:01 pm »
I wish I had computer programming skills x.x I have experience in making interpreted languages, though...
...
...
I remember way back when this was just starting out :D

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #26 on: July 19, 2011, 03:57:19 pm »
Eh, computer programming isn't hard. Pretty much just logic when coding and figuring out how to do certain things. If you can program in Axe, you can easily make a transition to computers. With the interpreted languages maybe you could help out too... >.>

I remember when Batlib and BASIC ReCode started out :)

Offline Ti-Programmer

  • LV3 Member (Next: 100)
  • ***
  • Posts: 84
  • Rating: +3/-0
  • Whats this? so many features...
    • View Profile
    • Ti-Programmer's website
Re: TBEXE - Pre-alpha feature requests
« Reply #27 on: July 19, 2011, 07:43:32 pm »
@Ti-Programmer, could you explain more on what you mean by templates? It'll only support .8xp program files on the first release, if that helps. It seems like a good idea, though. As for the emulator, I might consider that for the first release, but I was thinking that might be able to be accomplished using a plugin (I'll contact the people who control Wabbit when the time comes). FTP shouldn't be too hard using sockets. I like that idea, people could easily work on the project with others. Thanks! :D

@pianoman, get about 199 others to go for it and you got yourself a deal :P

I thought this was an IDE at first...
Sorry...
But you could ask SirCmpwn to integrate this in his IDE, he might do it.
Its really useful for those who don't have roms.
Spoiler For Sig:







Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #28 on: July 19, 2011, 09:16:13 pm »
@Ti-Programmer, could you explain more on what you mean by templates? It'll only support .8xp program files on the first release, if that helps. It seems like a good idea, though. As for the emulator, I might consider that for the first release, but I was thinking that might be able to be accomplished using a plugin (I'll contact the people who control Wabbit when the time comes). FTP shouldn't be too hard using sockets. I like that idea, people could easily work on the project with others. Thanks! :D

@pianoman, get about 199 others to go for it and you got yourself a deal :P

I thought this was an IDE at first...
Sorry...
But you could ask SirCmpwn to integrate this in his IDE, he might do it.
Its really useful for those who don't have roms.

Um... What? This is an IDE... IDE stands for Integrated Development Environment. Visual Studio is an IDE, SharpDevelop is an IDE; the concept is not TI-based lol. I don't want to ask SirCmpwn to integrate this; I want this to be a standalone IDE :P

Besides, with lunixbochs's Python interpreter (we might have to port it to C#) there really won't be a need for an emulator. I understand how I could implement templates, though, so thanks for that! (I was confused at first because there really wasn't any need that I could think of)

Offline lunixbochs

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 13
  • Rating: +1/-0
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #29 on: July 19, 2011, 09:55:31 pm »
Besides, with lunixbochs's Python interpreter (we might have to port it to C#) there really won't be a need for an emulator.
No need for a C# port, we can integrate Python code cleanly with C# via IronPython: http://ironpython.net/