I don't have much time to type this (It's bedtime for me), but work has commenced on a programming language in PURE TI-BASIC. I was told this was impossible, but they are soon to be biting back their words. Also, the name of it is hidden in one of my posts (Recent posts, that is), so try and find it! (If needed, Admins please move this thread to Up & Coming Projects).

Initial Post wrote:

I am a little over 10% done, so expect some sweet screenshots soon!

I am ~25% done!
How are you going to do editing? This is going be extremely hard, if not impossible.
Not sure how this would be possible, making a language with a language... but I wanna see how this goes through! Very Happy Are you able to post any screenshots, would love to see it Smile
Battlesquid wrote:
Not sure how this would be possible, making a language with a language... but I wanna see how this goes through! Very Happy Are you able to post any screenshots, would love to see it Smile

Well... ti-basic is made in asm I guess... The thing I'm having a hard time with is how do you plan on reading from another file? Presumably, you will store your new program in a 8xp file, but there is no way to read from such a file in pure basic to be able to parse anything. Also, If your plan is to make some sort of terminal program like this, that's not a new programming language.
If you somehow find a way to make it work, you will be using an interpreted language to interpret another language... From a programmer's perspective, I think we can all see that such a concept is not desirable for obvious reasons. I look forward to seeing what you come up with and what counts as a programming language in your book Smile
I'm still wondering how you're going to make the tokenizer.
This sounds insanely difficult, and I would advise you to use ICE compiler for this job. Making a language in TI-BASIC is just too slow.
It's not at all impossible, just infeasible. For example, you can make a Brain**** interpreter in TI-BASIC, demonstrating that it's completely feasible to interpret languages with other languages. Because TI-BASIC is Turing-complete, in fact, you can implement anything you can implement in any other Turing-complete programming language given unlimited memory. Good luck with the project; I'll be interested to see if it turns out to be a novelty or something useful. Either way, it should be a great learning experience for you!
KermMartian wrote:
It's not at all impossible, just infeasible. For example, you can make a Brain**** interpreter in TI-BASIC, demonstrating that it's completely feasible to interpret languages with other languages. Because TI-BASIC is Turing-complete, in fact, you can implement anything you can implement in any other Turing-complete programming language given unlimited memory. Good luck with the project; I'll be interested to see if it turns out to be a novelty or something useful. Either way, it should be a great learning experience for you!


Yeah. I have decided on a very simple programming language, but for fun (And because I am lazy), you only have 50 variables (Not joking), and 10 lines of code. I have also decided, but this may change, on limiting you to one program. The programs will be saved after a clear ram, and there will be basic operators, like +, -, /, *, and ^. (Boolean functions will be added, but they will be a little more complicated then in TI-Basic). Also, it will probably be a novelty, but I might hold a mini contest to see who can create the best program.

oldmud0 wrote:
I'm still wondering how you're going to make the tokenizer.

It doesn't. The program is written so that detects [alpha], and [2nd], and will react accordingly. Each character you type in is stored to a list. When you compile the program, it searches for certain sub-lists, which are the commands. Once it has detected a command, it gets the arguments, and sends it to a separate list, which the executor (for lack of a better term) uses.

CalcMeister wrote:
This sounds insanely difficult, and I would advise you to use ICE compiler for this job. Making a language in TI-BASIC is just too slow.

ICE doesn't support non-integers, so I cannot use it. I also do not wish to re-learn ASM, as I like challenges. (I.E. things that haven't been done more than 5 times)

mr womp womp wrote:
Battlesquid wrote:
Not sure how this would be possible, making a language with a language... but I wanna see how this goes through! Very Happy Are you able to post any screenshots, would love to see it Smile

Well... ti-basic is made in asm I guess... The thing I'm having a hard time with is how do you plan on reading from another file? Presumably, you will store your new program in a 8xp file, but there is no way to read from such a file in pure basic to be able to parse anything. Also, If your plan is to make some sort of terminal program like this, that's not a new programming language.
If you somehow find a way to make it work, you will be using an interpreted language to interpret another language... From a programmer's perspective, I think we can all see that such a concept is not desirable for obvious reasons. I look forward to seeing what you come up with and what counts as a programming language in your book Smile


This is different (in a way) as it is much more structured and can do a lot more. In my opinion, a programming language is something you can use to tell a computer to "do stuff".

calcnerd_CEP_D wrote:
How are you going to do editing? This is going be extremely hard, if not impossible.

There is a very clever method, but you will have to wait and see. Hint: It uses the graphscreen.

Battlesquid wrote:
Not sure how this would be possible, making a language with a language... but I wanna see how this goes through! Very Happy Are you able to post any screenshots, would love to see it Smile


Aren't all programming languages written in other programming languages? (Like besides simply editing hardware/binary)


I'd like to add, that with my nearly empty ram (excluding the program and its variables), that the compiler and editing methods are incredibly fast (compared to writing an equivalent program in TI-BASIC). I was initially surprised, but I guess that with more layers, the more shortcuts you can add.


EDIT: I also want to give credit to PT_, as some of the functions drew inspiration from ICE.
Whoa, this looks really cool!
_iPhoenix_ wrote:
Yeah. I have decided on a very simple programming language, but for fun (And because I am lazy), you only have 50 variables (Not joking), and 10 lines of code. I have also decided, but this may change, on limiting you to one program.
Why is there a limit on how many lines it can be? Shouldn't the interpreter just go along reading continually without much issue? Along the same lines, what's to stop someone from having more than one program if they are in separate files that the interpreter can read?
Have you seen this?

https://www.cemetech.net/forum/viewtopic.php?t=11389

But, yeah, sounds kinda interesting, albeit, not very useful. Razz
Unicorn wrote:
Have you seen this?

https://www.cemetech.net/forum/viewtopic.php?t=11389

But, yeah, sounds kinda interesting, albeit, not very useful. Razz


Yes, but that was ASM Wink
EDIT: looking closer, it wasn't, but i'm pretty sure it used hybrid-basic as it had to be able to read files.
EDIT2: opps, wrong AGAIN! It seems like it used Doors for file reading. With mine, the idea is that you can completely reset, download and install one file, then start programming.

Kydapoot wrote:
Whoa, this looks really cool!
_iPhoenix_ wrote:
Yeah. I have decided on a very simple programming language, but for fun (And because I am lazy), you only have 50 variables (Not joking), and 10 lines of code. I have also decided, but this may change, on limiting you to one program.
Why is there a limit on how many lines it can be? Shouldn't the interpreter just go along reading continually without much issue? Along the same lines, what's to stop someone from having more than one program if they are in separate files that the interpreter can read?


To answer your first 2 questions: Each line of code is stored to a list (for ease of use for me)
To answer your 3rd question: this is in pure TI-Basic, so all editing has to be done in-program. If you want to have multiple programs, I'll probably write some kind of method of "Archiving" programs (so you can work on others). This is mostly a proof of concept, and it probably won't go very far.

EDIT: Also, if I do decide to add the archival of programs, it means that one will be able to distribute programs easily, with a single list.
Progress Update (yay)

I have fully integrated one function, "LOOP" (hmm I wonder what it does...) and the editor is 100% complete. The compiler.... Not so much. The one thing holding me back is my typing speed and my, uh, memory, as I know exactly how it will be executed.

Current percentage: 25%

Fancy Progress bar:


EDIT:
Creating a signature version (Why not?) of the progress bar.
More progress has been made, and I will be posting parts of the code (not all, it's very buggy rn) tmro. Most likely, it will be the program editor, and there are certain things I need not be critiqued on, as they are important to the latter parts of the program

-Each line of code is stored in its own list, but there are like five lists for each line! This is important to the compiler. Don't worry.

-There are a lot of repeated commands/loops that could be avoided if it was all done in one list. I know, but like I said, it's important for the compiler,and it's easier to redraw on the screen.

-OMG there's a memory leak that can't (to my knowledge) be fixed. I don't really care. It's not like that section of code gets run every time you press a button, or anything. (It's in the compiler, and only gets run if you are an idiot, and leave the first line blank. Don't worry)

I am more interested in small changes then huge adjustments, as the project doesn't need to take longer than it needs to.

(Reminder to future self to post code right here)
Here ya go, i should reboot this sometime. One Raw TI-Basic -based programming language coming right up!
Ignition
Luxen wrote:
Here ya go, i should reboot this sometime. One Raw TI-Basic -based programming language coming right up!
Ignition


That's really close to what I am doing, but yours is much more featured. Mine, however (lol this won't be much), will let you produce even less efficient programs! Everyone will love it! (Full on advert now) Fun for the whole, annoyed, family!
This sounds really hard. I would counsel you heavily to use ICE, Asm, or some other faster language to do this, as you'll need a lot of things that TI-BASIC does not have to offer.
CalcMeister wrote:
This sounds really hard. I would counsel you heavily to use ICE, Asm, or some other faster language to do this, as you'll need a lot of things that TI-BASIC does not have to offer.

ICE isn't useable in this case, because it's very hard to have any interaction with the BASIC language, you 'can't use BASIC variables, Ans, etc'. Of course that is possible in ASM, but that is not easy for a beginner Wink
CalcMeister wrote:
This sounds really hard. I would counsel you heavily to use ICE, Asm, or some other faster language to do this, as you'll need a lot of things that TI-BASIC does not have to offer.

This is super easy and totally doable in C. Wink
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement