Vesob

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
This is still a work in progress. It may be changed in the future.
Vesob
Designed by User:Ivava
Appeared in 2025
Computational class Unknown
Reference implementation Python
Does not apply to Vesob.ru and other

Vesob [vɛˈsop] is easy minimalistic character by character esoteric programming language for some popular examples and output, if else.
Vesob helps in IP things with something, because it also can output programmer's computer/wiFi own IP by ipify, or by name.
Vesob is just typical esolang, daughter to HQ9+, just adding some commands

Commands

Command Description
h Hello, world!
q Quine
l (small L, not I) output the lenght of code
i if accumulator is 1, output Ipify IP. If accumulator is other, ignore.
+ Increment the accumulator by 1
- Decrement by 1
o Output the accumulator
0 Zero the accumulator
; output the host IP
: Output the IP by ipify

Other text is executing as comment. All code is one string.

Examples

Hello, world!

h

The "h" command outputs "Hello, World!", the same, that outputs standart Hello, world!

Quine

q

XKCD Random Number

++++o

The accumulator is 4 after four pluses. o command outputs it.

Shorter variant (4 character)

вввl

"ввв" is non-command, just comment for lenght. l command outputs the lenght of code, and because code is 4 character, it output "4"

Interpreters

Please write own interpreters with your own hands, because ChatGPT's interpreters is terrible.

Interpreters in python

"""Vesob interpreter (compact, readable)

Implements commands described in the MediaWiki source provided by the user. All non-command characters are treated as comments.

Commands: h  -> print "Hello, World!"\n q  -> print the program source (quine)\n l  -> print length of the code (number of characters)\n i  -> if accumulator == 1, print ipify IP\n :  -> print ipify IP (unconditional)\n ;  -> print host IP (via socket.gethostbyname)

-> accumulator += 1


-> accumulator -= 1 o  -> print accumulator (as integer)\n 0  -> set accumulator = 0


Notes:

ipify retrieval uses HTTPS (urllib). Network errors are caught and reported to stderr.

The interpreter treats the whole program as a single string. It prints results to stdout. """


import sys
import socket 
import urllib.request 
import urllib.error

API_IPIFY = "https://api.ipify.org"

def get_ipify(): 
"""Return external IP from ipify as a string, or an error message on failure.""" try: with urllib.request.urlopen(API_IPIFY, timeout=5) as resp: return resp.read().decode('utf-8') except Exception as e: return f"ipify-error:{e}"

def get_host_ip(): 

"""Return host IP using gethostbyname(gethostname()).""" 
try: 
name = socket.gethostname() 
return 
socket.gethostbyname(name) except Exception as e:
return f"host-ip-error:{e}"

def interpret(code: str): """Interpret a Vesob program given as a single string.

Side effects: writes outputs to stdout.
Returns nothing.
"""
acc = 0
# iterate character-by-character
for ch in code:
    if ch == '+':
        acc += 1
    elif ch == '-':
        acc -= 1
    elif ch == '0':
        acc = 0
    elif ch == 'o':
        # output accumulator
        sys.stdout.write(str(acc))
        sys.stdout.write('\n')
    elif ch == 'h':
        sys.stdout.write('Hello, World!')
        sys.stdout.write('\n')
    elif ch == 'q':
        # quine: output the whole source string
        sys.stdout.write(code)
        sys.stdout.write('\n')
    elif ch == 'l':
        sys.stdout.write(str(len(code)))
        sys.stdout.write('\n')
    elif ch == 'i':
        if acc == 1:
            sys.stdout.write(get_ipify())
            sys.stdout.write('\n')
    elif ch == ':':
        sys.stdout.write(get_ipify())
        sys.stdout.write('\n')
    elif ch == ';':
        sys.stdout.write(get_host_ip())
        sys.stdout.write('\n')
    else:
        # everything else is a comment; ignore
        continue

Written by AI, maybe contatin errors.

Other

Why User:Ivava developed Vesob?

  1. At first, Vesob was intended to be a typical, easy, and character-by-character language, but since the author (Ivava) was afraid of cyber things, Ivava added IP and IF ELSE
  2. At second, it is just replenishment to Esolangs.

Why Vesob interpreter can be written ONLY on language that working with HTTPS?

These Languages include Go, Python, Java, and JS (node.js) Shorter:

  1. All of these languages have commands, working with host ( gethostbyname). Vesob's interpreter written in Python uses commands socket.gethostbyname(socket.gethostname()) to work with host IP.
  2. All of these languages have commands, working with HTTPS. Python interpreter opens https://api.ipify.org/ to output IP.

Why not to download packages and libraries? — SO THAT YOU SWEAT LESS. YOU WILL SPEND A YEAR OF TIME TO ESTABLISH ALL THIS.