flat assembler
Message board for the users of flat assembler.

Index > High Level Languages > BOLT Programming Language

Author
Thread Post new topic Reply to topic
NanoBytes



Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
NanoBytes 30 Aug 2014, 00:02
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 Smile

(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.
Post 30 Aug 2014, 00:02
View user's profile Send private message Send e-mail Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1608
Roman 30 Aug 2014, 05:52
Show simple sample code Smile
Post 30 Aug 2014, 05:52
View user's profile Send private message Reply with quote
NanoBytes



Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
NanoBytes 30 Aug 2014, 06:11
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
Post 30 Aug 2014, 06:11
View user's profile Send private message Send e-mail Visit poster's website Reply with quote
NanoBytes



Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
NanoBytes 30 Aug 2014, 06:14
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

https://www.youtube.com/watch?v=OU5gYCZ2K1Y&list=UUWPL3MXXP67-QTgLnIotrNQ

_________________
He is no fool who gives what he cannot
keep to gain what he cannot loose.
Post 30 Aug 2014, 06:14
View user's profile Send private message Send e-mail Visit poster's website Reply with quote
questlima



Joined: 27 Aug 2014
Posts: 37
questlima 30 Aug 2014, 19:46
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 Smile

(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:)
Post 30 Aug 2014, 19:46
View user's profile Send private message Reply with quote
NanoBytes



Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
NanoBytes 30 Aug 2014, 20:43
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?
Post 30 Aug 2014, 20:43
View user's profile Send private message Send e-mail Visit poster's website Reply with quote
NanoBytes



Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
NanoBytes 30 Aug 2014, 20:51
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.
Post 30 Aug 2014, 20:51
View user's profile Send private message Send e-mail Visit poster's website Reply with quote
questlima



Joined: 27 Aug 2014
Posts: 37
questlima 30 Aug 2014, 21:11
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:)
Post 30 Aug 2014, 21:11
View user's profile Send private message Reply with quote
NanoBytes



Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
NanoBytes 30 Aug 2014, 21:45
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 Smile )

_________________
He is no fool who gives what he cannot
keep to gain what he cannot loose.
Post 30 Aug 2014, 21:45
View user's profile Send private message Send e-mail Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 19738
Location: In your JS exploiting you and your system
revolution 31 Aug 2014, 02:23
What does the name BOLT mean?
Post 31 Aug 2014, 02:23
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 31 Aug 2014, 07:03
I like the syntaxes without curly brackets. Wink
Post 31 Aug 2014, 07:03
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
questlima



Joined: 27 Aug 2014
Posts: 37
questlima 31 Aug 2014, 11:15
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 Smile )


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 Laughing 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 Laughing 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 Embarassed 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:)
Post 31 Aug 2014, 11:15
View user's profile Send private message Reply with quote
NanoBytes



Joined: 02 Jun 2011
Posts: 57
Location: Iowa, United States
NanoBytes 31 Aug 2014, 18:12
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.
Post 31 Aug 2014, 18:12
View user's profile Send private message Send e-mail Visit poster's website Reply with quote
m3ntal



Joined: 08 Dec 2013
Posts: 296
m3ntal 13 Oct 2014, 12:46
Pretty cool Smile

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? Smile
Post 13 Oct 2014, 12:46
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
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
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.