Omnimaga

General Discussion => Technology and Development => Computer Projects and Ideas => Topic started by: Ashbad on May 29, 2011, 03:18:24 pm

Title: Verdant Programming Language and Vixen
Post by: Ashbad on May 29, 2011, 03:18:24 pm
Hello, Again:

I'm not making an all new computer language, please hear me out.  I'm simply against the idea of making an all new language for the Casio Prizm -- C is growing more wonderfully fun for me to code in as I delve deeper into it, and even though it's fun and all, there's not enough documentation of the Prizm to even attempt my own language for it yet.  That's why I'm moving it all to the Computer Platforms of today ;D Specifically, windows to boot, I don't plan on getting Linux anytime soon.

Basically, it's a total movement over in platform, and few differences beside "Emerald" > "Verdant" (an unsuccessful language from the 80's already took the name Emerald, and it sounds like a total steal from Ruby) and "VixenVM" > "Vixen".

With that in mind, I'm much more open to suggestions than before, and I think I'll actually appreciate any help I can get, teaching-me-concepts and giving-advice wise.  With that in mind, I have a few areas where I would like to see some views:

- What language should I write it in?  This one will most likely turn out to be C, and that's fine, that's my idea too ;)
- Compiled (hard), or Interpreted (Easier)?  I'm thinking Interpreted.
- OO from the bottom up like Ruby/Python, or like Java or even C++?  I'm thinking mostly OO based.
- What C compiler?  I'm not actually sure myself, I was thinking GCC, but I've heard sayings like "LLVM is faster...", so any advice on this area is welcome.
- Changes in original syntax?  I'm thinking of making it a bit more condensed.
- Changes in OOP design?  Actually, I'm sticking with the weird object groups idea I came up with most likely.
- Anything else?

I want to do it the right way from the beginning, and I think I'm able enough to do a somewhat-simple Interpreted language that could be useful in ways.  I know it won't be "Widely used throughout the industry to make Halo 5 dimensional games".
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on May 29, 2011, 04:00:03 pm
C/C+= for writing
Fastest interpreted you can amke
OO completely make that a strong base for it
I'd say GCC
Smaller more condensed code good
whatever yousee to work best and most intuitively
Make it fast but easy to code in. this should not be a malbolge. and try to stop changing your project idea overall it just hurts it. Make it for linux also multiplatform always good.

I think thats good for suggestions for now
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on May 29, 2011, 04:58:32 pm
Good ideas -- I personally won't be developing for Linux though.  I know infinitely more about windows than Linux -- though with some help from other people I could eventually port it.  Though, Windows first.
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on May 29, 2011, 07:12:55 pm
 I might be able to collaborate with you for linux.  That would only be after July 8th though. After that my crazy summer is over. I'll see what you get done by then ;).
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on May 29, 2011, 07:21:45 pm
Hopefully by then I have a decent chunk of the interpreter working -- I'll be glad to collaborate with you :)
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on May 29, 2011, 07:29:14 pm
Andby then I should have my nice new 64 bit laptop with Linux/windows/anything else I need
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on May 29, 2011, 07:30:25 pm
nice :) perfect platform for testing a linux version.  I'll try my best to not use anything like <windows.h> so it won't be so difficult for you :)
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on May 29, 2011, 07:31:57 pm
That would be great. If worse comes to worse I'll code your language in a  virtual box or a separate partition
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on May 29, 2011, 07:35:11 pm
And, anyone who wants to contribute ideas, feel free to post your ideal form of syntx, in a hello world program in a hello world calss :)
Title: Re: Verdant Programming Language and Vixen
Post by: DJ Omnimaga on May 30, 2011, 12:41:04 am
Did you call your language after bwang's brother nickname? O.O

Anyway I'm sorry to hear it's not for calcs anymore. I hope you still plan to develop for calcs in the future. D: However I guess it might be a good idea since there are already two new languages coming out for the Prizm, one that is popular here (Java) and another that might look like a popular calc one (Axe), so you would have maybe some unsustainable competition :/. I am curious how this will turn out as computer language.
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on June 01, 2011, 08:46:37 pm
I've actually been working on this a lot lately :)  If you would like some stuff, it's a bit late and I don't have much time to say much, but I can give a general update:

Syntax: for now, it's actually very finalized.  It's a lot closer to a mix between Ada, Ruby, and Lua with tons of my own things :)
Interpreter: Haven't really started at all.
Compiler: actually, some decent progress.  Right now it detects strings, numbers, and that's all... :/ not much, but once I get into the swing of things more, it should go faster.
Website: I need help, eventually.
Documentation: Started, far from done, but at least is almost done with operators :) MS Word actual has a use when you put it to work making web pages.

Now, here's an interesting part for you all.  Since I have finished the syntax for now, I am going to post 4 different examples of programs all using normal Verdant conventions.  Whoever can guess what all 4 do wins a chance to try out the Alpha compiler/interpreter and VM on August 1st.

Here they are, in order.  You get no hints from me -- I just need to see how easy they are to read and how different they are from the languages you may normally use.

1:

(http://img.removedfromgame.com/imgs/VerdantCodeEaxmple001.PNG)


2:

(http://img.removedfromgame.com/imgs/VerdantCodeEaxmple002.PNG)


3:

(http://img.removedfromgame.com/imgs/VerdantCodeEaxmple003.PNG)


4:

(http://img.removedfromgame.com/imgs/VerdantCodeEaxmple004.PNG)



Good luck ;)
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on June 01, 2011, 09:21:48 pm
1.
2
3.Hello World I believe
4.program in a program(very inception like)

Some of the syntax looks very confusing, but could be useful
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on June 01, 2011, 09:24:25 pm
2/4 correct :)

yeah, it's a bit confusing, but I'm finding it to be a lot more intuitive than other languages -- plus, for your pleasure, I made the first two highly twisted >:D
Title: Re: Verdant Programming Language and Vixen
Post by: pianoman on June 01, 2011, 09:29:42 pm
Yeah, it's definitely more intuitive than some languages.
I might be able to help with a website later on.
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on June 01, 2011, 09:30:28 pm
my guess is 2 tests to see if an input is "number" and 1 is an over complex hello prog

EDIT:I might be able to help with a website I learning all of that just recently
Title: Re: Verdant Programming Language and Vixen
Post by: calcdude84se on June 01, 2011, 09:55:48 pm
1.
Quote
hello I guess :P
hello I guess :P
2. Prompts you. If it's not a number, it displays "not a number!" and breaks (exits, whatever).
Otherwise, it counts up from 1 to the number you entered, printing each one.
Then it prints that line starting "That was an awesome"...
3 & 4, what Ruler said.
Title: Re: Verdant Programming Language and Vixen
Post by: AngelFish on June 01, 2011, 10:08:13 pm
That strikes me as kind of an object oriented/functional markup language more than a programming language for some reason.

One question I have is why "Give <n>" rather than the standard "Return"?
Title: Re: Verdant Programming Language and Vixen
Post by: calcdude84se on June 01, 2011, 10:08:48 pm
It might be stack-oriented. Can't tell. Or maybe he just likes it that way :P
Title: Re: Verdant Programming Language and Vixen
Post by: DJ Omnimaga on June 01, 2011, 11:03:32 pm
Glad to see some more progress on this Ashbad.
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on June 01, 2011, 11:09:32 pm
Thsi looks liek it could be very useful for some things, but I'd like a good explanation of the syntax
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on June 02, 2011, 07:43:58 am
Thsi looks liek it could be very useful for some things, but I'd like a good explanation of the syntax

That you shall get in the future, once I get further on the documentation I'm laboring on ;)

however, I used 'give' because I pretty much like it that way.  You see, in a function, you can 'take' an argument, which means basically you absorb the argument into a local variable in objects, such as:

Code: [Select]
type cat
  string:char name <to nil
  method new(name)
    take @name
  enddef
enddef
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on June 02, 2011, 08:33:25 am
so what is the point of having
Code: [Select]
method new(name) it seems you'd only need
Code: [Select]
method new() then the take would give you the local variable you need
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on June 02, 2011, 08:37:55 am
well, it would need the argument to be taken, because otherwise there would be nothing to absorb ;)
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on June 02, 2011, 08:41:06 am
That is confusing me. Could you please explain what the difference with take and having the argument is
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on June 02, 2011, 08:46:43 am
okay, I'll try me best to explain ;)

basically, a local variable that is accessed within methods starts with @, showing it's a instance-only variable (@@ means type variable, and @@@ means group variable).  When you 'take' an argument, you're doing basically this:

Code: [Select]
self.variable = new_variable
except, it would just "take" it instead:

Code: [Select]
take @variable
The two are exactly the same in function, though take can be used in other applications as well, such as in this:

Code: [Select]
method change_attribute_for_group(attribute)
  take @@@attribute
enddef

which is highly useful for quickly changing a framework for an instance group.
Title: Re: Verdant Programming Language and Vixen
Post by: ruler501 on June 02, 2011, 08:56:07 am
So its more like setting a class variable in python right?
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on June 02, 2011, 09:02:33 am
yeah, it's pretty much like that :)
Title: Re: Verdant Programming Language and Vixen
Post by: XVicarious on June 14, 2011, 08:55:31 pm
I don't know why, but it looks really confusing to me. Although I'm more used to Python and C language syntax than anything else.
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on June 14, 2011, 09:05:25 pm
Well the syntax is a bit of Rubonic Pike mixed with my own verbose ideals.  It's a bit different than many other languages, but to say one thing, its extremely flexible and awesome, as you can do things like non-linear expressions, polytyping variables to fit certain criteria, and such.  Comparison of C code and Verdant code:

Code: [Select]
typedef union {
  Int val1;
  Float val2;
} int_float;

Int_float apple = 2.0f;
apple += 5;
apple *= 2;

Code: [Select]
int:float apple <to (2 * (parseval + 5) to> parseval)
It's not a great example, but it shows non-linear assignment and the use of parseval (a variable local to each line of complete code, basically holds currently parsed value)

Keep in mind, the C code I just posted would most likely not be far off from what would be executed if the Verdant code above was compiled and then run.

Also keep in mind that Verdant code I posted isn't very optimized at all, and would be better written as this:

Code: [Select]
int:float apple <to 2 * (parseval +5)
But that totally ruins my example ;)
Title: Re: Verdant Programming Language and Vixen
Post by: Spyro543 on June 14, 2011, 09:47:36 pm
Perhaps you could make Verdant for EnvisionDev? It is about programming, anyway ;D

Anywhoz, It's a big project to make a whole programming language, and I'm ... uhhh..... proud of you to be doing this. Awesomeness ;D
Title: Re: Verdant Programming Language and Vixen
Post by: Ashbad on June 15, 2011, 07:43:31 pm
Thanks, I'm glad you like it :) for now I'm making it just for windows, but I will code it with limited libraries so it'll translate easily.  I'd be glad to try later on though.

I think that since I made significant progress on ROL:AT today, I'll spend some time on this after din.rar.