Setonas Programming Language
Setonas is a programming language created in the secret labs of Bell Labs.
This is the first language that supports reverse versioning.
Thanks to him, there is no problem with backwards compatibility.
Setonas in its releases is moving from version 3.4.6 to 0.0, which will be the absolute in programming languages.
There will not be any bugs and the language will run faster than the machine code.
The first release of Setonas is version 3.4.6, which was released on April 1, 2017.
It is believed that from this moment the world lives on a new calendar -
Before the appearance of Setonas and After the appearance of Setonas.
Setonas is Python-based and translated into the Lithuanian language, as it is more receptive for reading.
At the moment, Setonas is used by such gigants as:
Conceptually Setonas very similar to other programming languages, as took the best of them.
docker pull setonas/setonas
docker run -it setonas/setonas
You can become a core developer of Setonas very simply - by purchasing a T-shirt. Buy
You can simply run a .se file by using
setonas example.se
For education purposes lets try to understand butelis.se:
apibrėžti WSGIHandler(aplin, pradžia_atsakymas):
globalinis prašymas
globalinis atsakymas
prašymas.įpareigoti(aplin)
atsakymas.įpareigoti()
bandyti:
prižiūrėtojas, argi = rungtynės_url(prašymas.kelias, prašymas.metodas)
jei not prižiūrėtojas:
kelti HTTPKlaida(404, "Nerastas")
produkcija = prižiūrėtojas(**argi)
išskyrus BreakButelio kaip antsparnis:
produkcija = antsparnis.produkcija
išskyrus Exception kaip išimtis:
atsakymas.statusas = getattr(išimtis, 'http_statusas', 500)
klaidaprižiūrėtojas = KLAIDA_HANDLER.get(atsakymas.statusas, klaida_nutylėjimą)
bandyti:
produkcija = klaidaprižiūrėtojas(išimtis)
išskyrus:
produkcija = "Išimtis per klaidos prižiūrėtojas! Prašymas sustabdyti."
jei atsakymas.statusas == 500:
prašymas._aplin['wsgi.errors'].write("Error (500) on '%s': %s\n" % (prašymas.kelias, išimtis))
db.uždaryti()
jei turiatrib(produkcija, 'read'):
failąišvesties = produkcija
jei 'wsgi.file_wrapper' iš aplin:
produkcija = aplin['wsgi.file_wrapper'](failąišvesties)
kitas:
produkcija = iter(lambda: failąišvesties.read(8192), '')
kijei isinstance(produkcija, stg):
produkcija = [produkcija.encode()]
dėl c iš atsakymas.SLAPUKAI.values():
atsakymas.antraštė.papildyti('Set-Cookie', c.OutputString())
statusas = '%d %s' % (atsakymas.statusas, HTTP_KODAI[atsakymas.statusas])
pradžia_atsakymas(statusas, sąrašas(atsakymas.antraštė.daiktai()))
sugrįžti produkcija
Setonas has the first web framework - butelis.
Here is an example.se with its using:
nuo butelis importas maršrutas, paleisti, prašymas, atsakymas, siųsti_failą, nutraukti, db, ButelisKibiras
kibiras = ButelisKibiras('kibaras1')
kibiras['mano_vardas'] = None
@maršrutas('/')
apibrėžti sveiki_pasaulis():
jei kibiras['mano_vardas']:
sugrįžti "Jūs buvote %s" % kibiras['mano_vardas']
sugrįžti 'Sveiki Pasaulis!'
@maršrutas('/sveiki/:vardas')
apibrėžti sveiki_vardas(vardas):
kibiras['mano_vardas'] = vardas
sugrįžti 'Sveiki %s!' % vardas
@maršrutas('/sveiki', metodas='POST')
apibrėžti sveiki_paštas():
vardas = prašymas.PAŠTAS['vardas']
sugrįžti 'Sveiki %s!' % vardas
@maršrutas('/statinio/:failo_pavadinimas#.*#')
apibrėžti statinio_failą(failo_pavadinimas):
siųsti_failą(failo_pavadinimas, šaknis='/path/to/static/files/')
paleisti(kariuomenė='localhost', uostas=8080)
MagicSetonas is used to highlight syntax in:
Here is some language design, that you can use:
if -> jei
elif -> kijei
else -> kitas
def -> apibrėžti
try -> bandyti
except -> išskyrus
else -> kitas
finally -> pagaliau
import -> importas
from -> nuo
as -> kaip
raise -> kelti
return -> sugrįžti
for -> dėl
in -> iš
yield -> duoti
from -> nuo
class -> rūšis
continue ->tęsti
break -> pertrauka
break -> pereiti
del -> pan
global -> globalinis
nonlocal -> nelokaliosiomis
assert -> teigti
while -> kol
with -> su
as -> kaip
lambda -> liambda
property -> nuosavybė
isinstance -> yrainstancija
getattr -> gautiatrib
or -> arba
and -> ir
not -> nebūtų
os -> vs
os.path -> vs.kelias
os.name -> vs.vardas
os.curdir -> vs.dabkat
os.pardir -> vs.tėvųkat
os.sep -> vs.sep
os.extsep -> vs.pratsep
os.altsep -> vs.pakasep
os.pathsep -> vs.kelsep
os.linesep -> vs.linisep
os.defpath -> vs.numamarš
os.devnull -> vs.asilas
int -> sveik
list -> sąrašas
object -> objektas
str ->stg
True -> Tiesa
False -> Netikras
None -> Joks
abs -> abs (absoliutus)
all -> visi
any -> koks
sum -> suma
min -> min (minimumas)
max -> maks
next -> sekantis
len -> ilgis
hasattr -> turiatrib
range -> diapazonas
iter -> iter
print -> spausdinti
in -> iš
This is an April Fools’ joke =)