You are browsing as a guest. Sign up (or log in) to start making projects!

Blink

  • 7 Devlogs
  • 8 Total hours

Blink is a programming language built entirely from scratch in Python. It features a custom lexer, recursive descent parser, abstract syntax tree (AST), and interpreter, along with support for variables, arithmetic, user input, conditionals, loops, and logical operators. Designed as an educational project, Blink makes it easy to explore how programming languages work internally.

Ship #2

Worked more over BIink project!!!!!!
Blink — A Beginner-Friendly Programming Language Built From Scratch

Blink is a custom programming language designed and developed from scratch to explore the fundamentals of how programming languages work. It provides a simple, readable syntax while implementing the core components of a real language, including lexical analysis, parsing, abstract syntax trees (AST), and interpretation.

And I loved working more over this, and added in more commands, for loops and lists and stuff, cuz now it makes it a proper language with more features, also added error messages that can be shown.

In total, now i am also able to make programs properly using Blink!

  • 1 devlog
  • 1h
  • 8.37x multiplier
  • 8 Stardust
Try project → See source code →
Open comments for this post

53m 55s logged

Devlog: Blink upgraded!

I’ve been working on turning Blink from a basic interpreter into a more complete and beginner-friendly programming language.

It can now perform many tasks that Python handles through functions and keywords—but using simple, English-like commands.

Here are the newest Blink commands and features:

-make, run, and give for creating and using custom functions

-list , add , remove , and ```length of```` for working with lists

-item … of, change item, has, and position of for accessing and updating list items

-for each for looping through every item in a list

-ask text and ask number for receiving typed user input

-{variable} text filling for placing values directly inside sentences

-stop loop and skip turn for controlling loops

-details, put … as … in, and "label" from details for storing labelled information

-uppercase of, lowercase of, trim, split … by, and join … with for working with text

-try and if error for handling problems without crashing the program

-also added and improved Blink’s command-line tools

And a few moreee commands - it was fun making those!!!

Blink now also provides clearer error messages with filenames, line numbers, helpful hints, and spelling suggestions such as:
Did you mean “say”?

Blink is now much closer to being a properly usable programming language—while still keeping its main idea intact- making coding feel like simple English.

Also i have added few more example programs!

I will still continue working over this even more to polish it!

0
0
38
Ship #1

Blink — A Beginner-Friendly Programming Language Built From Scratch

Blink is a custom programming language designed and developed from scratch to explore the fundamentals of how programming languages work. It provides a simple, readable syntax while implementing the core components of a real language, including lexical analysis, parsing, abstract syntax trees (AST), and interpretation.

The goal behind Blink is to make programming language concepts easier to understand by creating a lightweight language where users can write code using intuitive commands and learn how instructions are processed internally.

#Programming Features

  • Blink currently supports:
    Variables and assignments
    Mathematical expressions
    String handling
    Conditional logic
    Logical operators (and, or)
    Repetition using loops (repeat, while)
    Output commands

#Current Status

Blink v0.1 is the first version, featuring the core language architecture, execution engine, and essential programming constructs. Future versions aim to introduce more advanced features and continue improving.

  • 6 devlogs
  • 7h
  • 10.23x multiplier
  • 65 Stardust
Try project → See source code →
Open comments for this post

1h 23m logged

# Devlog 6 — Today’s Progress

Today was a major development day for Blink! I worked on expanding the language features and making Blink easier to install and use.

-Added New Language Features
-Added support for logical operators: and or -Implemented while loops, allowing Blink programs to perform repeated execution based on conditions.

Added Installation Support.
Users can now install Blink directly from GitHub:
pip install git+https://github.com/arpitaa31/Blink.git

After building the core features, improving the structure, and testing the workflow, I am now shipping Blink v0.1 — the first official version of my programming language. I will still keep working over it and add more features to this programming language.

0
0
23
Open comments for this post

2h 18m 9s logged

#Devlog 5

Today was another huge milestone for Blink! The language is starting to feel much more like an actual programming language now.
Added support for numbers in Blink. Improved the interpreter to handle numerical values instead of only strings.
Made arithmetic operations work successfully, including expressions using operators like +, -, *, and /. Improved BinaryOperationNode so Blink can create and process proper expression trees.

Spent a lot of time testing and debugging how these new features interact with the existing lexer, parser, AST, and interpreter, yesterday as well. Understanding how every feature needs support from multiple parts of the language made the process much clearer.

A few challenges I faced:

  1. Making sure different data types (strings and numbers) are handled correctly.
  2. Connecting new syntax with AST nodes and interpreter logic.
  3. Fixing bugs where small parser changes affected execution.

Blink can now:
-Print outputs using say
-Store and use values
-Perform calculations
-Take user input
-Make decisions using conditions
-Repeat instructions using loops

Next, I want to focus on improving error handling, adding more features, and eventually creating a playground where anyone can write and run Blink code.

0
0
12
Open comments for this post

56m 51s logged

#Devlog 4
Today’s session was probably one of the biggest milestones so far!
-Added support for the say statement in Blink.
-Built a SayNode in the AST.
-Updated the interpreter so it can actually execute say statements.

Spent some time understanding how the whole project flows, which made everything much clearer.
Started working on arithmetic expressions.
Created a new BinaryOperationNode for expression trees. Added a parse_expression() function that can understand expressions like 10 + 20.

The parser can now understand arithmetic expressions, and next session I’ll make the interpreter actually calculate them.
In short i worked on the interpreter today!

Successfully made Blink print - “Arpitaa”:

1
0
24
Open comments for this post

43m 15s logged

Devlog #3
Today’s session was mostly about moving Blink from just reading code to actually understanding it.
What I worked on:
-Finished setting up the Parser for Blink.
-Created the basic AST (Abstract Syntax Tree) nodes:
-Connected the Lexer and Parser together.

So,
Made Blink recognize simple assignment statements like:
name = “Arpitaa”

And successfully generated Blink’s first AST (Abstract Syntax Tree which is a tree-like structure created by the parser that represents the meaning and structure of a program.) , which means the language can now understand the structure of code instead of just reading characters.

Challenges faced:
Spent some time debugging Python indentation errors.
Accidentally mixed up code between parser.py and ast_nodes.py, so I reorganized the project files properly.

Now next, I have to build the Interpreter, so Blink can actually execute code. The code i ran and the results i got on executing the code today :

2
0
99
Open comments for this post

22m 43s logged

#Devlog 2 Hi! So, basically i mainly continued working on the lexer. The best part of today was finally running Blink. Blink was able to read it and print tokens for variables, strings, operators and keywords one by one. Seein my own programming lang successfully read a source file! Today’s work made me understand that the lexer doesn’t execute the program. Its only job is to read the code and break it into meaningful pieces that the next stage can understand. Anddd now i have will start working on building the Parser. After running a code, i was able to see this:

0
0
14
Open comments for this post

1h 24m 14s logged

Devlog 1 Today I finally started working on Blink, my own programming language. I had no idea how programming languages actually worked, so I first learned the basic flow. I worked on the Token system. Basically, Blink now knows the different types of things it can see, like strings, variables, keywords etc. I also made a Token class that stores those values. After that, I started working on the lexer. Rn, it can move through the code one character at a time, skip spaces, read strings, and identify blink’s keywords.

0
0
65

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…