flat assembler
Message board for the users of flat assembler.
 flat assembler > High Level Languages > BOLT Programming Language
Author
NanoBytes

Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States

# BOLT Programming Language

Hey! I just finished a stable release of my several year long project BOLT. This is a programming language that is meant for beginners, but IT IS FULLY FUNCTIONAL, comparable to C in terms of what it can do. It was made to be simple, as to learn programming concepts, without getting caught up in syntax.

I am posting this here because you guys have helped me alot while working on the assembly code that BOLT spits out for fasm. This would not have been possible without you.

I just wanted to know if you would check it out, look at the assembly that it spits out, and tell me what you think. It has a few video tutorials to make learning really simple for people that already know how to program.

Be honest and tell me what you think. If you find bugs, just let me know. Being 17 and trying to get good grades in collage does not leave me alot of time to beta test. So, just let me know if you find problems

(I threw a special shout out to you guys in the read me)

_________________
He is no fool who gives what he cannot
keep to gain what he cannot loose.
30 Aug 2014, 00:02
Roman

Joined: 21 Apr 2012
Posts: 353
Show simple sample code
30 Aug 2014, 05:52
NanoBytes

Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
Oh, duh! Good idea

 Code: main begin         write("Enter the angle you want to find the sine of (deg): ")         number DegAngle = getNumber()         number Angle = DegAngle*#toRad,                Sine = 0,                Sign = 1          loop 15 as i begin                 Sine += Sign*(Angle^(i*2-1)/(i*2-1)!)                  Sign *= -1          end                          Sine = round(Sine,8)         writeLn("The sine of ".DegAngle." degrees is ".Sine)  end

This i just a simple program. You enter a number ant it will use the taylor series to calculate the sine iof that number

There are like 15 examples programs that do differant things, and they all working examples of BOLT code. That comes in the download link i gave

_________________
He is no fool who gives what he cannot
keep to gain what he cannot loose.

Last edited by NanoBytes on 30 Aug 2014, 06:25; edited 5 times in total
30 Aug 2014, 06:11
NanoBytes

Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
The code looks alot better with the proper syntax highlighting...

In this tutorial video i show how to use the syntax highlighting scheme that comes with the download

_________________
He is no fool who gives what he cannot
keep to gain what he cannot loose.
30 Aug 2014, 06:14
questlima

Joined: 27 Aug 2014
Posts: 37

# Re: BOLT Programming Language

 NanoBytes wrote: Hey! I just finished a stable release of my several year long project BOLT. This is a programming language that is meant for beginners, but IT IS FULLY FUNCTIONAL, comparable to C in terms of what it can do. It was made to be simple, as to learn programming concepts, without getting caught up in syntax. I am posting this here because you guys have helped me alot while working on the assembly code that BOLT spits out for fasm. This would not have been possible without you. I just wanted to know if you would check it out, look at the assembly that it spits out, and tell me what you think. It has a few video tutorials to make learning really simple for people that already know how to program. https://sourceforge.net/projects/boltprogramming/files/BOLT%20v3.7z/download Be honest and tell me what you think. If you find bugs, just let me know. Being 17 and trying to get good grades in collage does not leave me alot of time to beta test. So, just let me know if you find problems (I threw a special shout out to you guys in the read me)

this is awesome it takes balls to do something like this right now i am using
BOLT and i love it yes programming language are meant to be easy to write and learn keep up the great work

_________________
Linux command are not what you intended to
learn but your were forced to learn it, without it
you will be like a sitting duck on your beautiful newly installed Linux desktop:)
30 Aug 2014, 19:46
NanoBytes

Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
You just made my day. If you have any criticisms, or ideas to make it better, more readable, or easier to learn. Please let me know

And if you dont mind, tell me about the tutorial videos, what do you think about them, how can i make them better?
30 Aug 2014, 20:43
NanoBytes

Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
Here are the functions in the standard library

 Code: void write(text t) // Writes text to the screen void writeLn(text t) // Writes text to the console, and adds a newline text getChar() // Gets a single character from the user text getText() // Gets text from the user number getNumber() // Gets a number from the user number getStroke() // Returns the ASCII value of the key pressed number random(number a, number b) // Returns a random number from a to b void setCaretPosition(number X, number Y) // Sets the caret position void clearScreen()// Clears the screen of all text number max(number a, number b)// Returns the max of the two numbers number min(number a, number b)// Returns the min of the two numbers number round(number x, number digits) // Rounds x to the "digits" digit text asciiToText(number x)// Converts x to the ASCII representation string

All of the function definitions are already included (as opposed to C++ where you need to include them in the code). So you can just use them.

If there are more functions i need to add, let me know. I am working on some of the obvious ones right now (sin, cos, ect) but if there is anything you would like to see, i would be happy to write it.

_________________
He is no fool who gives what he cannot
keep to gain what he cannot loose.
30 Aug 2014, 20:51
questlima

Joined: 27 Aug 2014
Posts: 37
 NanoBytes wrote: You just made my day. If you have any criticisms, or ideas to make it better, more readable, or easier to learn. Please let me know And if you dont mind, tell me about the tutorial videos, what do you think about them, how can i make them better?

*You just made my day* nope great people like you change the world for good, i have watched those videos it would be nice if you could do some
advance tuts like writing a DLL if you get time anyway great project i love it keep up and don't ever never let this run dry coz as i said it takes balls to do this kind of project RESPECT

_________________
Linux command are not what you intended to
learn but your were forced to learn it, without it
you will be like a sitting duck on your beautiful newly installed Linux desktop:)
30 Aug 2014, 21:11
NanoBytes

Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
It is in areas like that where BOLT falls short.

I didn't start messing with DLLs until several years after I started programming. And it is because of this that i did not include support for creating DLLs, because the beginning programmer would have no need for making them.

It turns out, there is another problem with making DLLs in BOLT.

First you need to understand 2 things
* BOLT automatically includes the ENTIRE standard library at compile time
* It will remove all of the functions that wont be called from the ASM file.

This does not work with a DLL, because you don't know what functions will be used at compile time. This means that (for DLLs at least) i could not cut all of the unused functions out of the program, because they could all be used.

And because the entire standard library is included, all of the DLLs would (potentially) be very large, only to use a few select functions.

If you believe that DLL support is a feature that will be helpful to people, then i will find a way to make them work. But in my opinion, the people that have need for creating a DLL, would be advanced enough to no longer need/use BOLT, so they could just use the next language.

This is exactly what BOLT was made for. It was made to be simple, yet resemble better languages. This way, they could learn to program, and when they want to move on to something more powerful, like C++, they will find that it is pretty similar to the programming language they already know, and the transition will be much smoother.

But of course, if you have any other tutorial ideas, or ideas to improve the existing ones will always be welcome. And im sorry i was not able to be of more help with the DLL thing

(BTW. Im not a "great people" im just a 17 year old kid that likes to program, but i appreciate the compliment )

_________________
He is no fool who gives what he cannot
keep to gain what he cannot loose.
30 Aug 2014, 21:45
revolution
When all else fails, read the source

Joined: 24 Aug 2004
Posts: 15733
Location: Crossing the Cauchy horizon
What does the name BOLT mean?
31 Aug 2014, 02:23
JohnFound

Joined: 16 Jun 2003
Posts: 3464
Location: Bulgaria
I like the syntaxes without curly brackets.
31 Aug 2014, 07:03
questlima

Joined: 27 Aug 2014
Posts: 37
 NanoBytes wrote: It is in areas like that where BOLT falls short. I didn't start messing with DLLs until several years after I started programming. And it is because of this that i did not include support for creating DLLs, because the beginning programmer would have no need for making them. It turns out, there is another problem with making DLLs in BOLT. First you need to understand 2 things * BOLT automatically includes the ENTIRE standard library at compile time * It will remove all of the functions that wont be called from the ASM file. This does not work with a DLL, because you don't know what functions will be used at compile time. This means that (for DLLs at least) i could not cut all of the unused functions out of the program, because they could all be used. And because the entire standard library is included, all of the DLLs would (potentially) be very large, only to use a few select functions. If you believe that DLL support is a feature that will be helpful to people, then i will find a way to make them work. But in my opinion, the people that have need for creating a DLL, would be advanced enough to no longer need/use BOLT, so they could just use the next language. This is exactly what BOLT was made for. It was made to be simple, yet resemble better languages. This way, they could learn to program, and when they want to move on to something more powerful, like C++, they will find that it is pretty similar to the programming language they already know, and the transition will be much smoother. But of course, if you have any other tutorial ideas, or ideas to improve the existing ones will always be welcome. And im sorry i was not able to be of more help with the DLL thing (BTW. Im not a "great people" im just a 17 year old kid that likes to program, but i appreciate the compliment )

you're always welcome

hi there 17 and doing this kind of project is a blessing not many people take this kind of challenging work, i see that you have a very bright
future you just have to keep going no matter what coz as you get older
there will be many obstacles don't let that get in your way just follow your
dreams and in no time you'll be among those great people who has / had made the world a better place, i think the world needs more people like you YES, keep up the great work.

OMG did i just sounded like your mom / dad if i did than am sorry please pardon me just wanted to share my thoughts anyway and for the DLL part i just love DLLs that's why i just gave some idea but as you said BOLT is for beginners just keep it this way its very cool btw BOLT is pure FASM YES anyway keep up the great work

sorry for my beautiful English its not my native language

_________________
Linux command are not what you intended to
learn but your were forced to learn it, without it
you will be like a sitting duck on your beautiful newly installed Linux desktop:)
31 Aug 2014, 11:15
NanoBytes

Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
I know, when I first started programming in c++ the curly braces, and most of the symbols for that matter where very intimidating, and I tried to keep BOLT as symbol free as I could.

And BOLT does not stand for anything, it is just a name that I thought was suitable. But I do see why it might be confusing because BOLT is written in capitol letters, but, hey :!

_________________
He is no fool who gives what he cannot
keep to gain what he cannot loose.
31 Aug 2014, 18:12
m3ntal

Joined: 08 Dec 2013
Posts: 296
Pretty cool

Have you seen http://rosettacode.org/wiki/Rosetta_Code? It displays algorithms in all popular languages. You can compare syntaxes and see which ones are the simplest and most effective.

I've always dreamed about making a language that defines itself in a text file with specific rules. So, the programmer can define any/all language/s and customize code generation. Example:
 Code: ; define what "identifier" is name begins [a-z A-Z _] \  and contains [a-z A-Z 0-9 _]
PS: Only 17? And you're already writing good code?

_________________
New FASM Site, Examples, Graphics, Updated Libraries
13 Oct 2014, 12:46
 Display posts from previous: All Posts1 Day7 Days2 Weeks1 Month3 Months6 Months1 Year Oldest FirstNewest First

 Jump to: Select a forum Official----------------Blog General----------------MainDOSWindowsLinuxUnixMenuetOS Specific----------------MacroinstructionsCompiler InternalsIDE DevelopmentOS ConstructionNon-x86 architecturesHigh Level LanguagesProgramming Language DesignProjects and IdeasExamples and Tutorials Other----------------FeedbackHeapTest Area

Forum Rules:
 You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum