https://github.com/sup2point0/supcode
A conceptual programming language created by Sup#2.0
https://github.com/sup2point0/supcode
coding-language programming-language sup supcode
Last synced: about 1 month ago
JSON representation
A conceptual programming language created by Sup#2.0
- Host: GitHub
- URL: https://github.com/sup2point0/supcode
- Owner: Sup2point0
- Created: 2022-04-02T14:33:29.000Z (about 3 years ago)
- Default Branch: sup
- Last Pushed: 2024-11-10T17:07:59.000Z (6 months ago)
- Last Synced: 2025-03-28T00:51:10.702Z (about 2 months ago)
- Topics: coding-language, programming-language, sup, supcode
- Language: Markdown
- Homepage: https://sup2point0.github.io/supcode/
- Size: 17.9 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# supcode

A modern, high-level, feature-rich general-purpose programming language.
[site↗](https://sup2point0.github.io/supcode) \ [walkthrough](resources/supcoda/) \ [docs](docs/) \ [reddit↗](https://reddit.com/r/supcode) \ [Nova](resources/Nova)
---

## Features
- Intuitive keyword-focused syntax
- Object-oriented and dynamically typed
- `kebab-case` in identifiers for maximum readability
- Clean and easy modularisation and path resolution
- Flexible with configurations and flavours
- Versatile with extensions and frameworks
- Purely conceptual – you can’t write a single bug if the code doesn’t run!## Explore
> [!TIP]
> For the best first viewing experience, check out the [supcode site↗](https://sup2point0.github.io/supcode)!Want to see more of supcode? We’ve got a huge array of [specimens](specimens/).
Looking to learn the language? The [*supcoda*](resources/supcoda/) is a full walkthrough.
Instant question? There’s a good chance it’s answered in [FAQ](faq.md).

## Info
supcode 5.0
official name
supcode
format
text-based
level
high-level
execution
interpreted
paradigm
imperative, object-oriented, event-driven
purpose
general-purpose
syntax
human-friendly – readable, intuitive, keyword-focused
type
dynamic
indentation
significant (pre-6.0)
insignificant (post-6.0)
platform
any
based on
Scratch, Python
inspired by
Wikitext Markup, Swift, C#, HTML
filename extensions
.sc
,.sc6
.sc5
,.scx
other extensions
.scd
,.scp
,.scv
,.scl
,.scs
,.scg
main flavour
Utinax One
other flavours
Veritinax One, Resinax 1.6
initial release
September 2021
founder
Sup#2.0
developer
2.0 Studios (2.0 Studios LLC)
IDEs
supcode Studio, supcode Studio Strium
latest release
5.7 (July 2023)
6.0 (upcoming)
## Contributing
Feedback, thoughts and criticism are absolutely welcome! Just drop something in [issues]() or [discussions]().
## Roadmap
- [ ] site
- [ ] *supcoda*
- [x] *Learn supcode in Y minutes*
- [x] PrismJS syntax highlighter## About
Made with love by Sup#2.0 ([@Sup2Point0]()).
On ? September 2021, I sent a code file written in a hypothetical programming language to my friend, just as a joke. What d’y’know, a joke develops until it becomes reality, and supcode was born. Development subsequently kicked off, with 3 major revisions of the language, before we reached stability with supcode 4.0.
supcode draws upon each and every coding language I’ve worked with – primarily Scratch, Python and Wikitext Markup. Its original intention was to act as a bridge between the block-based syntax of Scratch and text-based syntax of real code, although the language has ~~deteriorated~~ developed too far for this vision to remain accurate. Above all, it aims to be fun, unique and dynamic.
I’ve placed all this work under the MIT license, but in the unlikely case that anyone would like to use any of it, credit would be appreciated.
Enjoy!
## Specimens
### supcode 6.0
> [!Note]
> *supcode 6.0* is currently under development.```coffee
\\
DISCLAIMER –
This code is only a peek at what supcode can do.
It is not by any means functional, optimised or perfect.
Enjoy ^v^
\\create struct 'profile' {
\\
Represents a user profile.
\\evolve action create self(ctx) [
| int 'id'
| str 'user', 'name'
| str, list(str) 'alts' = none
| list(str) 'langs' = list()
| list(str) 'apts' = list()
| (par)s 'pars'
] {
\\
Creates a new profile.
\\auto set id, name, alt-name, langs, apts
set self.'render-keywords' = dict(
"id" = "User ID",
"name" = "Username",
"alts" = "Alternative Usernames",
"langs" = "Programming Languages",
"apts" = "Aptitudes",
)loop for key, val in pars {
set self.(shard(key)) = val
}
}create func self.render-text() to str {
set 'text' = "Profile[" + "\n"loop for 'var' in self._vars_ {
if var in self.render-keywords {
alt text + "`render-keywords # var`: "
} else {
alt text + str(var) + ": "
}alt text + { if var is iterable then {
str.join(
{ for each in var out str(each) }
) [sep = ", "]
} else str(var) }
}out text
}
}evolve sys.run(ctx) [(par)s]
{
set 'sup' = profile() [
| id = 2.0
| name = "Sup#2.0"
| alt-name = "Sup2point0"
| langs = "supcode", "Scratch", "Python", "C#", "HTML", "CSS", "JavaScript",
| apts = (
"creating", "designing", "coding", "procrastinating",
)
]sys.out(sup.render-text())
sys.in()
sys.quit()
}\ how’d you like that?
```### supcode 5.7
```coffee
\ supcode 5.7create struct 'SoupMachine' {
evolve func self.create(ctx) [
| num 'cost'
| str 'name' = none
| (str)s 'flavours' = ()
] {
set self.'cost' = cost
set self.'name' = { if name then name else ctx.shard.str }
set self.'flavours' = { loop for each in flavours || case(each)[lower] }
}
define self.purchase() [
| source
| int 'count' = 1
| pool[self.flavours] 'flavour' = none
] {
if count < 1 {
evoke "Can’t give that many bowls of soup!"
}
if not flavour {
set 'flavour' = random(self.flavours)[option]
}
alt source - self.cost * count
func.out("Here’s some flavour` soup!")
}
}set 'credits' = 200
set 'soupy' = SoupMachine() [
| cost = 20
| flavours = "tomato", "mushroom", "potato"
]sys.out(soupy.purchase(credits, 1, "mushroom"))
```