Landing Page
Pass Testcase
Fail Testcase
The singaScript project consists of a development environment (SGStudioCode) for users to run, evaluate, and test singaScript, a custom-built programming language. SingaScript is a low-level programming language built on top of Python and it uses almost exclusively Singaporean slangs as keywords, making it a unique and fun way to program.
The singaScript development environment is perfect for those who are interested in learning a new programming language, and especially those who are interested in Singaporean culture and language. It is a great tool for educators, students, and hobbyists who want to learn programming in a fun and engaging way.
-
To bridge the gap between culture and technology: singaScript is designed to make programming more accessible and relatable to Singaporeans and those interested in Singaporean culture.
-
To give a twist to modern programming: singaScript is a low-level programming language built on top of Python and it uses Singaporean slangs as keywords which makes it more interesting and fun to program.
-
To create a sense of belonging: singaScript is also aimed at creating a sense of community among Singaporeans by providing a platform for them to share their knowledge and skills.
The SGStudioCode development environment includes an interpreter, a virtual Singlish-speaking "tutor" Merli and a set of tools that make it easy for users to practice, run and test their singaScript coding prowess. The interpreter allows users to run singaScript code in real-time, while a custom compiler can convert singaScript code into Python bytecode, making it more efficient to run.
# Welcome to singaScript #
chope 1 table
chope 2 benches
tables not same benches
chope 5 your_grades
chope 10 my_grades
sekali my_grades better than your_grades then simi("Facts") bobian simi("Lies")
keep on my_grades lousier than 100 then chope my_grades + 1 my_grades
// Welcome to singaScript
const table = 1;
const benches = 2;
(table != benches);
const your_grades = 5;
const my_grades = 10;
if (my_grades > your_grades) {
console.log("Facts");
} else {
console.log("Lies");
}
while (my_grades < 100) {
my_grades = my_grades + 1;
}
The syntaxes are as liddat
Keyword | singaScript |
---|---|
const | chope |
if | sekali |
then | then |
elif | otherwise |
else | bobian |
while | keep on |
simi |
Better operator? Swee
Operators | singaScript |
---|---|
and | and |
or | or |
== | same |
!= | not same |
> | better than |
< | lousier than |
>= | better than or same |
<= | lousier than or same |
No more liao
- The code responsible for a low-level language is extremely complex and requires a deep understanding of the grammar rules, underlying systems and architecture. Decrypting the code is time-consuming and much harder than expected.
- Gained a better understanding of asynchronous programming. "I am now async god" - @sikai00 #bueypaiseh
- Lack of proficiency in tech stack resulted in small hiccups along the way
- Working on sleep deprivation was an added challenge
- Had issues with managing state using React Hooks
This is the first time we delve into the realm of language development. Through this project, we have developed a newfound appreciation for the knowledge and dedication of language developers to their craft. Embarking on this project within 24 hours is admittedly ambitious but it allowed us to pick up new skill sets while forcing us to think creatively and critically to find solutions to problems encountered.
The singaScript project is open-source. We hope that the community can contribute to the development of the language by adding more features and improving its performance of the language. Submit a pull request and we will get back to it eventually. Sumpah ;)
We are happy with the final product.
Singlang v2: Now Uncle also can code
py-myopl-code
Credits to Singapore Tourism Board for the Merli Mascot