? N# Compiler v1.8 ● SmileBASIC Source

Sign In

Register
*Usernames are case-sensitive
Forgot my password

N# Compiler v1.8

Submitted
Updated
Author
phil_
Public Key
CKANY53Y
Min. Compat.
All
Version
Beta 1.7
Rating
23 votes
Description The N# Compiler is a compiler that reads N# code and outputs legal SmileBasic code. Its intention is to be an optional COMPLETE replacement for SmileBasic, as it contains the ability to do all that SB can do, plus more, easier. N# is a multi-paradigm (Object-Oriented, Functional) language with extra capabilities that SB does not have (such as classes, lazy evaluation, higher-order functions, etc.). The compiler eliminates need for variable and function suffixes (the compiler handles them automatically) and improves syntax of existing commands (for example, C-style "for," "while," "if," etc). N# is not an extension of SB, but rather a total replacement. It is not the same language by any means. All code must be in a function, and all functions should be in a class. If a function is not in a class, it will assume inheritance by the next occurring class. The compiler automatically runs "entry.main" at program start. Here's the official discussion/help thread: http://smilebasicsource.com/forum?fpid=5814 Instructions [N# manual has not been published] 1: Set PRG:N_SHARP as your SmileTool. 2: Write your N# program in slot 0 of the editor. 3: When you're ready to compile, press the Smile button. Your program will compile and will appear in slot 1 of the editor. This new PRG file is in pure SB, so it can be loaded, saved, and published independent of any N# tools. N# "Hello World" example: use "Console" static class entry def public void main() Console.Println "Hello World!" end end static As this is Beta, there are a few glitches I am aware of. However, almost all of these are crunched, and so the development should hopefully come out of beta soon. Update List: Beta v1.0: *Original publication Beta v1.1: *Private functions *Changed array declaration syntax *Fixed calculator example *Bug fixes Beta 1.2 *Revamped objects *Assigning objects class references *Bug fixes Beta 1.3 *Library importing *Completed object functionality *MML and Graphics classes *Class variables (private keyword doesn't work yet with these) *Passing an object's value as a parameter works now *Inline SB editor using [SB] tag in front of a line *Bug fixes Beta 1.4 * += and -= operators to work on objects * /=, %=, *=, <<=, and >>= operators added * % instead of MOD *Console and Hardware class *Class variables *Immutable value types *Foreach blocks *Basic array comprehension using [| and |] *Compile code to a standalone PRG! (No more mandatory runtime compilation) *Bug fixes Beta 1.5 *Changed syntax of switch blocks ("end" is no longer required after each case, only at the very end) *Changed compilation process of +=, -=, *=, /=, %=, <<=, and >>= (this does not affect the user) *Removed runtime compiler *Added progress bar to compilation *Removed support for labels *Partial sprite library *App library *Resource library *Bug fixes Beta 1.6 *By reference parameter passing *Brace syntax *Dictionary library *Wildcard variable (equal to anything) *Runs as SmileTool (much easier to use) *Ignore command *Lambdas and higher-order functions *Bug Fixes Beta 1.7 *Getter functions *Setter functions *Init functions *Modified Sprite and MML classes Beta 1.8 *Lazy evaluation *eval() function *BigInt library Expected Updates: Beta 1.9 *Completed Sprite Library *Function overloading *Bug Fixes Notes Intended for use by experienced programmers.
Categories
Keywords
62 Comment(s) Otacon8x Otacon8x Noob question, does this work with the smil3 tools? If I install this new language wil I be able to work on my program still? Will I be able to finish it with the new language? And will I lose my custom sprites or be able to use them with the new language? Thank you. Chemicalex Chemicalex Admin Drawing I like to draw! Hobbies RNG Hidden Easter Eggs Forum Contributor Hidden Achievements It compiles a program from one program file to another and runs it. Everything else in SmileBASIC outside of the folder will remain unaffected. MyLegGuy MyLegGuy When are you going to publish a manual? How am I supposed to use this without that? phil_ phil_ Scholar Received for knowing a great deal about programming topics Achievements Video Games I like to play video games! Hobbies First Day Joined on the very first day of SmileBASIC Source Website Right now, people have been reading the .LIB files and learning from those. It seems to be working with most people. I don't appreciate your demanding attitude, and I am working on the manual. I hope to have it done before the final release. After all, the language is still in beta. Guzzler829 Guzzler829 First Week Joined in the very first week of SmileBASIC Source Website Drawing I like to draw! Hobbies Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength When you do make the manual, you could send it with the Petit Modem and quote all the lines out. Then put LOAD "PRG3:MANUAL",0:USE 3 or something like that so you can read the manual anytime while coding. phil_ phil_ Scholar Received for knowing a great deal about programming topics Achievements Video Games I like to play video games! Hobbies First Day Joined on the very first day of SmileBASIC Source Website I'll include a link to it in the compiler so that you can run it on the 3DS's web browser (since you can run it whilst an app is running). Guzzler829 Guzzler829 First Week Joined in the very first week of SmileBASIC Source Website Drawing I like to draw! Hobbies Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength That makes sense. MyLegGuy MyLegGuy Sorry I sounded demanding and rude. I didn't mean to sound like that. Guzzler829 Guzzler829 First Week Joined in the very first week of SmileBASIC Source Website Drawing I like to draw! Hobbies Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength This will either be incredibly useful, or completely useless to me. I don't know C# or F#, but I might learn. I really like the concept, so keep up the good work. phil_ phil_ Scholar Received for knowing a great deal about programming topics Achievements Video Games I like to play video games! Hobbies First Day Joined on the very first day of SmileBASIC Source Website N# is closest to C#. The part of N# that F# influenced was mainly syntax (for example, no line semicolons, [| and |] for assigning values to arrays, etc.) Guzzler829 Guzzler829 First Week Joined in the very first week of SmileBASIC Source Website Drawing I like to draw! Hobbies Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Okay. 16bitcoder 16bitcoder How do you use this? phil_ phil_ Scholar Received for knowing a great deal about programming topics Achievements Video Games I like to play video games! Hobbies First Day Joined on the very first day of SmileBASIC Source Website Instructions are on this page. 16bitcoder 16bitcoder So IAmAPersson (offtopic) how does it feel when people beg you to port Minecraft ds? I know two people are making Minecraft 3ds (they called it block craft as a retextured version) on miiverse. (Hopefully now you can relax right?) phil_ phil_ Scholar Received for knowing a great deal about programming topics Achievements Video Games I like to play video games! Hobbies First Day Joined on the very first day of SmileBASIC Source Website I think people have gotten the hint that I don't intend on making MCDS. While they are disappointed, I myself find it a relief. MCDS was very stressful. Also, if you're still having problems with N#, you can check out the help thread here: http://smilebasicsource.com/forum?fpid=5814 Super_Defaultio Super_Defaultio First Month Joined in the very first month of SmileBASIC Source Website Beginner Programmer I'm just starting out! I'm still trying to grasp the basics. Programming Strength Zelda Is Awesome! I love The Legend Of Zelda! Express Yourself Question: do you need the commands to be in lowercase? phil_ phil_ Scholar Received for knowing a great deal about programming topics Achievements Video Games I like to play video games! Hobbies First Day Joined on the very first day of SmileBASIC Source Website Everything is case sensitive, so if it's supposed to be lowercase, it has to be lowercase. However, you can define your own functions uppercase like: def public void MYFUNCTION() end and now you reference MYFUNCTION() in all uppercase. phil_ phil_ Scholar Received for knowing a great deal about programming topics Achievements Video Games I like to play video games! Hobbies First Day Joined on the very first day of SmileBASIC Source Website Okay, so N#'s development is almost complete. It's so close to completion, I've already started making H#, an alternative to SB with a functional paradigm (based off of Haskell and F#, hence the name H#). All that's needed in N# still are a few libraries. The language itself is done unless bug fixes are required. phil_ phil_ Scholar Received for knowing a great deal about programming topics Achievements Video Games I like to play video games! Hobbies First Day Joined on the very first day of SmileBASIC Source Website Okay, so tons of progress has been made so far. Objects as class references are not complete yet, but I am working on them. Check out Phillip's posts (AKA me) on Miiverse for regular updates and examples of Nossrec programs! joelable joelable First Day Joined on the very first day of SmileBASIC Source Website Night Person I like the quiet night and sleep late. Express Yourself Video Games I like to play video games! Hobbies Very cool! 1 2