Share your repls and programming experiences

← Back to all posts
Progress Update on the Brew Programming Language(BPL) #1

So, I thought I'd post a "Progress" update every now and then on how the language is coming along as a whole.

Within the past month(or 2) that I have been either researching or working on the programming language, I have made quite an advancement.

I started from pure documentation and pretty much just copying each line of code. But as I did this, I paid attention and tried to wrap my head around just what each aspect of the code was doing.

The beginning was a bit hard I would say. But, within a week of me being confused, giving up, going back to researching for hours upon hours and studying the code, I finally understand how it worked.

After that, I followed the documentation a bit more for the parser. Did the same with the parser, but was a bit easier to pick up.

Hence afterwords, I started refactoring the C code, the lexer, the symbols, the parser and the syntax that would be going into the language.

Sounds hard right? No, it wasn't!
I understood what had to be done in order for the lexer to "tokenize" each part of my language. I understand how to give each "token" to my parser so it can "parser" through, or pass through each token.

And here we are! After a month of long hard work of research and study and of headaches, I have made the following progress:

  • make variables
  • types(S,I,C,A)
  • varconst variables(still in the works)
  • print function
  • Print function(still in the works)
  • brand keyword(still in the works)
  • String decorators(still in the works)
  • END keyword(for String Decorators)
  • Reform keyword(for END keyword)
  • alloc keyword(for Reform keyword)
  • PushValue keyword(for Refrom keyword)
  • To keyword(for PushValue keyword)
  • Value keyword(for PushValue keyword)
  • reference keyword(for String Decorators)
  • quotes and breaks keywords(for ENDS Wrap keyword)
  • Terminate Keyword(for Wrap keywords quotes. keyword breaks is being worked on)

Some stuff that isn't in the language, but is a part of it

  • The Memory Management :)
    (P.S: The language won't have much of this. The "memory management" of the language will be based off of mainly what users do with the memory within the language. The only "memory management" that won't be based off of users memory allocations is the reallocation of the memory size so we don't have random memory left over for something)

Upcoming Features(or features being worked on):

  • Brand keyword
    • memalloc
    • memcalloc
    • memrealloc
    • memfree
      (As well as a different approach to it)
  • String Decorators
    • Working on memory allocations(allocating to START and END instead of allocating to Reform before appending to START, END or both)
      • Making it to where the user can dump memory stored for the variable within the END body.
  • Adding in some better ideal functionality for Brews' memory management
    • Adding in a keyword that allows users to dump left over memory or keep it, since we do this by default.


The progress made so far has been major. All of those keywords were introduced in the first month of the languages development(and this is mainly just on make variables).

I have quite a ways to go with the language, but I am sure it will be a very enjoyable expierence!

Thoughts? Comment below and upvote!!