Live data from Hacker News

Show HN: The Sage Programming Language

github.com

11–20 of 32 posts

Re: Show HN: The Sage Programming Language

#11

The struct composition example with Position + Size is really interesting. I can’t say I’ve seen something that works that way before.

Thanks so much! I originally added it to experiment with the structural typing -- the type system is a really cool foundation for some awesome future stuff!

Thanks for checking out the project, I'm glad I was able to surprise you haha! :)

Re: Show HN: The Sage Programming Language

#12
post #8

FYI, Sage is also the name of a mathematical programming language: https://www.sagemath.org/

Thank you!! Sage will eventually change its name (I just recently found out about this), but I haven't had time to come up with a good replacement name and make art + quippy sayings for it yet! :) I might just go with a completely made up word to avoid any trademarks entirely haha

Mint? ;)

Re: Show HN: The Sage Programming Language

#13
post #12

Earlier quoted context omitted.

Thank you!! Sage will eventually change its name (I just recently found out about this), but I haven't had time to come up with a good replacement name and make art + quippy sayings for it yet! :) I might just go with a completely made up word to avoid any trademarks entirely haha

Mint? ;)

I like it! And if that's trademarked too I could always fall back on "spearmint" instead haha

Re: Show HN: The Sage Programming Language

#14
Sage is a programming language with a low level virtual machine based on a Turing tape. The sage virtual machine has a read/write head and a single register. The read/write head moves around the tape, and uses the register as an accumulator. All worldly input is done through a single instruction, and all worldly output is done through a single instruction. Functionality which cannot be achieved with any algorithm, such as using an operating system’s system calls to write to persistent memory, is also done through two instructions: one for sending values to the virtual machine’s foreign function interface, and one for receiving. The goal of the virtual machine is to allow algorithms to be expressed in the same time complexity as they would on x86, but with the smallest possible number of instructions. This allows sage code to be maximally portable: sage’s core instruction set could be implemented in hardware much easier than any modern architecture due to its very small pool of opcodes and their simplicity

This is an interesting snippet from your website, did this project intentionally start out as an attempt to design around a Turing machine? Or is it just safe to say that all languages executing on a stack with no heap are Turing machines?

Re: Show HN: The Sage Programming Language

#15
post #12

Earlier quoted context omitted.

Thank you!! Sage will eventually change its name (I just recently found out about this), but I haven't had time to come up with a good replacement name and make art + quippy sayings for it yet! :) I might just go with a completely made up word to avoid any trademarks entirely haha

Mint? ;)

oops! https://mint-lang.com/

Re: Show HN: The Sage Programming Language

#16

Sage is a programming language with a low level virtual machine based on a Turing tape. The sage virtual machine has a read/write head and a single register. The read/write head moves around the tape, and uses the register as an accumulator. All worldly input is done through a single instruction, and all worldly output is done through a single instruction. Functionality which cannot be achieved with any algorithm, su…

Thanks for the great question, and for checking out the project! This project started out because I noticed some really interesting properties about compiling brainfuck-like programming languages while writing high level language compilers that targeted these brainfuck-like backends.

This is the work that inspired Sage: Harbor (https://github.com/adam-mcdaniel/harbor). My goal with Sage was to take everything that makes a brainfuck-like programming language easy to compile, while also keeping all the time complexity and optimizations of regular algorithms. So, in that sense, it started out as an attempt to design around a Turing machine -- I wanted this to be a dialect of brainfuck. The VM doesn't use any stack operations, just operations on a tape pointer + an accumulator!

Re: Show HN: The Sage Programming Language

#19
post #8

FYI, Sage is also the name of a mathematical programming language: https://www.sagemath.org/

Thank you!! Sage will eventually change its name (I just recently found out about this), but I haven't had time to come up with a good replacement name and make art + quippy sayings for it yet! :) I might just go with a completely made up word to avoid any trademarks entirely haha

What are the constraints that you want for the name?

I was thinking "Pragmata", or something along those lines.

Continuing with natureish themes: Alga Moss Myco Wisp Ivy

Re: Show HN: The Sage Programming Language

#20
post #19

Earlier quoted context omitted.

Thank you!! Sage will eventually change its name (I just recently found out about this), but I haven't had time to come up with a good replacement name and make art + quippy sayings for it yet! :) I might just go with a completely made up word to avoid any trademarks entirely haha

What are the constraints that you want for the name? I was thinking "Pragmata", or something along those lines. Continuing with natureish themes: Alga Moss Myco Wisp Ivy

My major constraint is just that the name must lend itself well to artistic representations and fun mottos/slogans hahaha!

I love these suggestions, especially Moss and Ivy! Thank you!

Post reply on HN