Skip to main content

Gugugaga

Gugu

A small programming language with its own syntax, tooling, and personality.

About

Gugugaga (e.g. Gugu) is a small programming language designed to be simple, expressive, and distinctive.

It has its own syntax, keywords, data types, classes, decorators, modules, and a dedicated VS Code extension.

Source files use the .gugu extension.

The Gugugaga programming language is based on python.

Example

gugu hello(name):
    gu(f"Hello, {name}!")

gua name = gug("What's your name? ")
hello(name)

Run it with:

gugu hello.gugu

Installation

PyPI Installation

The recommended way to install Gugu is through PyPI:

python -m pip install gugugaga

Once installed, if you have a Gugu file, you can run Gugu with:

gugu <your-file-name>.gugu

If You don't have a gugu file, You can just make one.

Manual Installation

Clone the repository:

git clone https://github.com/siohaft/gugugaga.git
cd gugugaga

Install the project:

python -m pip install .

You can then run Gugu with:

gugu examples/hello.gugu

Features

  • Functions and classes
  • Variables and multiple assignment
  • if, elif, and else
  • for and while loops
  • break and continue
  • Boolean and logical operators
  • Built-in data types and functions
  • Modules and imports
  • Import aliases
  • Decorators
  • F-strings
  • Augmented assignment
  • Comments
  • VS Code support

Keywords

Gugu Purpose
gugugaga Class
gugu Function
goo If
goga Elif
gaa Else
guale While
guu For
gureak Break
gugugoo Continue
ga In
go As
gunot Not
guand And
guor Or
goat True
gusfand False
gua Variable definition
gaga Return
gagu From
guga Import

Built-in Functions

Gugu Purpose
gu Print
gug Input
gin Minimum
gax Maximum
guo Open a file

Example:

gua x = guint(gug("Enter x: "))
gua y = guint(gug("Enter y: "))

gu(f"Maximum: {gax(x, y)}")
gu(f"Minimum: {gin(x, y)}")

Data Types

Gugu Type
guint Integer
gufloat Float
gudouble Double
gucomplex Complex
gubool Boolean
gustr String
gubytes Bytes
gubytearray Byte array
gumemoryview Memory view
gulist List
gutuple Tuple
gudict Dictionary
guset Set
gufrozenset Frozen set

Functions

gugu add(a, b):
    gaga a + b

gua result = add(10, 20)
gu(result)

Conditions

goo score >= 90:
    gu("Excellent!")
goga score >= 60:
    gu("Passed!")
gaa:
    gu("Failed!")

Loops

For

guu i ga range(5):
    gu(i)

While

guale x > 0:
    gu(x)
    x -= 1

Break and Continue

guale goat:
    gua value = gug()

    goo value == "stop":
        gureak

    goo value == "":
        gugugoo

Classes

gugugaga Person:

    gugu hello(self, name):
        gu(f"Hello, {name}!")

gua person = Person()
person.hello("Moon")

Decorators

Gugu provides its own decorator names:

@gugustatic
@guguclass
@guguproperty

Example:

gugugaga Math:

    @gugustatic
    gugu add(a, b):
        gaga a + b

gu(Math.add(5, 3))

Imports

Gugu supports multiple .gugu files.

Example:

project/
├── main.gugu
└── math.gugu

math.gugu:

gugu add(a, b):
    gaga a + b

main.gugu:

gagu math guga add

gu(add(5, 3))

Modules can also be imported directly:

guga math

Aliases are supported:

gagu math guga add go plus

Strings

Both single and double quotes are supported:

gu("Hello")
gu('Hello')

F-strings are supported:

gua name = "Gugu"
gua version = 1

gu(f"{name} version {version}")

Expressions inside f-strings can use Gugu functions:

gua x = 10
gua y = 20

gu(f"Max: {gax(x, y)}, Min: {gin(x, y)}")

Comments

Use # for comments:

# This is a comment

gu("Hello")

In VS Code, Ctrl + / toggles line comments for .gugu files.

VS Code

Gugu includes a dedicated VS Code extension called Gugugaga.

It provides:

  • .gugu file recognition
  • Syntax highlighting
  • Gugu file icons
  • Comment toggling
  • A Run button
  • Gugu execution support

Project Structure

gugugaga/
├── src/
│   └── gugu/
│       ├── __init__.py
│       ├── lexer.py
│       ├── parser.py
│       ├── translator.py
│       ├── importer.py
│       └── cli.py
│
├── examples/
│   └── ...
│
└── vscode/
    └── gugugaga/
        ├── package.json
        ├── extension.js
        ├── icon.png
        ├── language-configuration.json
        └── syntaxes/
            └── gugu.tmLanguage.json

Status

Gugu is an experimental programming language under active development.

The language and tooling are continuing to evolve.

Contributing

Contributions, ideas, bug reports, and feature suggestions are welcome.

When proposing a new feature, keep the language's core goal in mind:

Gugu should feel like its own language.

License

See the repository's license file for licensing information.

Metadata

Release files for gugugaga 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gugugaga 0.1.4
File Size Uploaded
gugugaga-0.1.4.tar.gz 11.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gugugaga 0.1.4
File Interpreter ABI Platform
gugugaga-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 21.2 kB

Release files / gugugaga-0.1.4.tar.gz

Download URL gugugaga-0.1.4.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cb9ed9e37cda2ec0cb184a63fab0ba6d1e680a9808354f73dd376b3dea565e7d
BLAKE2b-256 checksum
How to use checksums
392d5cba2454e97d0d192b090d42ec24c9df7703e4f09ab5cf4e243ab91f1dfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release files / gugugaga-0.1.4-py3-none-any.whl

Download URL gugugaga-0.1.4-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
29879abd62cc8dca6892870996fd74d41f5d0c6bac94d57971cbf937c99de490
BLAKE2b-256 checksum
How to use checksums
34289e3e51a4c198d38329d00fa7ecaf80bb86281be054cb09bd3c2d6dd58b66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page