Diskuze: Jmeno programovaciho jazyka

Ostatní jazyky Ostatní programovací jazyky Jmeno programovaciho jazyka

Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Ahoj, jak jsem psal dříve, vytvářím programovací jazyk, základy mám hotové, ale nemám pro něj jméno. Všechna, která jsem vymyslel, buď už existují, nebo jsou existujícím hodně podobná.. Nějaké nápady na jméno? :)

Odpovědět 18.11.2014 15:40
';' je má jediná noční můra...
Avatar
vitamin
Člen
Avatar
Odpovídá na jan.ruzicka01
vitamin:

C@ (jazyov zacinajucich na C nie je nikdy dost:) )

Editováno 18.11.2014 15:48
 
Nahoru Odpovědět  +2 18.11.2014 15:48
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na jan.ruzicka01
Filip Šohajek:

Detaily? Interpretovaný, kompilovaný nebo Virt. Stroj? Z jakého jazyka vychází? Pokud kompilovaný, do kterého jazyka se kompiluje?

 
Nahoru Odpovědět 18.11.2014 16:12
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na Filip Šohajek
jan.ruzicka01:

Kompilovaný, vychází z Javy a Ruby, kompiluje se do Javy, kolekce, objektový, lambda výrazy..

Nahoru Odpovědět 18.11.2014 18:05
';' je má jediná noční můra...
Avatar
vitamin
Člen
Avatar
Odpovídá na jan.ruzicka01
vitamin:

Kompilujes to do java bytecodu alebo do javy ktoru nasledne kompiluje java kompilatorom?

 
Nahoru Odpovědět 18.11.2014 18:48
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na vitamin
jan.ruzicka01:

Zatím se kompiluje do zdroje Javy, ale chci to udělat později přímo do bytecodu.

Nahoru Odpovědět 18.11.2014 19:07
';' je má jediná noční můra...
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na jan.ruzicka01
Filip Šohajek:

Mimochodem, nechtěl by jsi pomoc při vývoji?

 
Nahoru Odpovědět 18.11.2014 19:12
Avatar
vitamin
Člen
Avatar
Odpovídá na jan.ruzicka01
vitamin:

Vystup tvojho prekladaca je korektny java kod alebo nehavas osetrovanie chyb na java kompilatore?

 
Nahoru Odpovědět 18.11.2014 19:13
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na vitamin
jan.ruzicka01:

Chyby nechávám na Javě

Nahoru Odpovědět 18.11.2014 19:27
';' je má jediná noční můra...
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na Filip Šohajek
jan.ruzicka01:

Dík, zvládnu to sám, ale pokud s něčím budu potřebovat pomoct, zeptám se tě ;)

Nahoru Odpovědět 18.11.2014 19:28
';' je má jediná noční můra...
Avatar
vitamin
Člen
Avatar
Odpovídá na jan.ruzicka01
vitamin:

Nespravyl si nahodou len preprocessor?

Editováno 18.11.2014 19:32
 
Nahoru Odpovědět  +1 18.11.2014 19:32
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na vitamin
jan.ruzicka01:

No... , když se nad tím teď zamyslím, tak asi jo :) Ale mám tam i runtime interpretaci a vlastnosti, které do Javy nejdou převést..

Nahoru Odpovědět 18.11.2014 19:43
';' je má jediná noční můra...
Avatar
vitamin
Člen
Avatar
Odpovídá na jan.ruzicka01
vitamin:

Ako tam mozes mat interpreter ked testovanie chyb nehavas na jave? Ako tam mozes mat vlastnosti ktore nejdu do javy previest ked to kompilujes do javy? :)

 
Nahoru Odpovědět  +2 18.11.2014 19:46
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na vitamin
jan.ruzicka01:

Mám tam dva režimy:

  1. Kompilace - Uživatel nadefinuje vstupní soubor, a ten se přeloží.
  2. Typing mode - Uživatel zadává příkazy (jako v shellu) a program je vykonává (potom jdou uložit do souboru)

Je to složité, ale funguje to :D

Nahoru Odpovědět 18.11.2014 19:51
';' je má jediná noční můra...
Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

A myslím, že tu jde o jméno :) ne princip překladu, kompilaci, interpretace...

Nahoru Odpovědět  ±0 18.11.2014 19:52
';' je má jediná noční můra...
Avatar
Richard H.
Redaktor
Avatar
Richard H.:

Jakou má syntaxi podle toho by se dal vymyslet název...

Nahoru Odpovědět 17.7.2015 9:08
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na Richard H.
jan.ruzicka01:

Jméno už jsem vymyslel, syntaxi má "plochou" (co nejméně závorek) -> Flat.

Nahoru Odpovědět 17.7.2015 14:32
';' je má jediná noční můra...
Avatar
Richard H.
Redaktor
Avatar
Richard H.:

takze příkaz if se tam (podle mého odhadu) dělá

 if a == "ahoj" then

end

narozníl od javy kde je to

if(a.equals("ahoj)){

}

chapu to dobře

Nahoru Odpovědět 18.7.2015 8:36
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Richard H.
Redaktor
Avatar
Odpovídá na Richard H.
Richard H.:

takze tvuj jazyk se může jmenovat Flat
Docela mě zajímá jaké má další vlastnosti.
Protoze kdyby byl objektový tak by se mohl jmenovat fol(flat objectiv language)

Nahoru Odpovědět 18.7.2015 8:39
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na jan.ruzicka01
Honza Bittner:

A proč né třeba rose, vycházející z tvého příjmení? :P

Pak to prezentovat na doméně např. rose-lang.com ... :)

Nahoru Odpovědět  +1 18.7.2015 8:51
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na Richard H.
jan.ruzicka01:

Jo, jazyk se může jmenovat Flat. Jeho hlavní odlišností bude hlavně volání (a definování) funkcí:

# Definice
say: what as: who; do
    print: who +  ' says ' + what
end

# Zavolání
say: 'Hello!' as: 'World'
Nahoru Odpovědět 18.7.2015 9:42
';' je má jediná noční můra...
Avatar
Richard H.
Redaktor
Avatar
Richard H.:

Přemýšlím také o tvorbě vlastního jazyka a napadla mě podobná syntaxe

Nahoru Odpovědět 18.7.2015 9:50
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na Honza Bittner
jan.ruzicka01:

Jo, to by mohl, vlastně jsem o tom moc nepřemýšlel... Ony obě jména mají své výhody a nevýhody ohledně konfliktů ve vyhledávači: Flat se často zamění s Cb (c-flat, sice neznámý, ale vyhledávač ho hází na první místa). Rose se zase zamění s frameworkem ROSE... Každopádně o tom popřemýšlím ;-)

Nahoru Odpovědět 18.7.2015 9:51
';' je má jediná noční můra...
Avatar
Richard H.
Redaktor
Avatar
Richard H.:

Přesněji že by se jednotlivé příkazy dali oddělit :

Nahoru Odpovědět 18.7.2015 9:51
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Richard H.
Redaktor
Avatar
Odpovídá na Richard H.
Richard H.:

No objektový jazyk to není to je jasné fungováním my trochu připomíná lua

Nahoru Odpovědět 18.7.2015 9:53
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Richard H.
Redaktor
Avatar
Richard H.:

Jaký je to typ jazyka.

Nahoru Odpovědět 18.7.2015 9:54
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Richard H.
Redaktor
Avatar
Richard H.:

Hádám to na funkcionální takže by se mohl jmenovat ffl (flat funkcional language)

Nahoru Odpovědět 18.7.2015 9:55
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na Richard H.
jan.ruzicka01:

Je to hodně podobné Objective-C. K tomu jazyků, v jakém jazyce ho hodláš programovat? Já ho programuju v Pythonu a vytváří k němu vlastní parkovací knihovnu. Jestli chceš pošlu ti její poslední, ještě nezveřejněnou verzi. ;-) Ale asi ji ještě budu mnohokrát měnit a optimalizovat...

Nahoru Odpovědět 18.7.2015 9:55
';' je má jediná noční můra...
Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Objekty zde budou, ale nebude to čistě objektový jazyk, bude možná trochu funkcionální, chtěl bych tam mít prototypy nebo něco na ten způsob, přemýšlel jsem, že by se atributy objektů ukládaly do hashe (dictionary) -> dají se snadno přidávat/mazat/mě­nit. Bude to jazyk dynamický -> proměnné jsou jména ukazující na hodnotu -> hodnota se nemění, mění se pouze informace, kam ukazuje "jméno". Taky jsem tam chtěl zakomponovat něco jako "odhadovač" výpočtů a ten, když výpočet selže (ComputeError, například při výpočtu Googolplexu), dosadí svou "odhadnutou" hodnotu místo výsledků.

Nahoru Odpovědět 18.7.2015 10:07
';' je má jediná noční můra...
Avatar
jan.ruzicka01
Redaktor
Avatar
Nahoru Odpovědět 18.7.2015 10:08
';' je má jediná noční můra...
Avatar
Richard H.
Redaktor
Avatar
Odpovídá na jan.ruzicka01
Richard H.:

No umím programovat v Javě a v C#
Zatím ho plánuju programovat v C#

Nahoru Odpovědět 18.7.2015 10:46
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Richard H.
Redaktor
Avatar
Richard H.:

A bude objektový mám rád OOP.

Nahoru Odpovědět 18.7.2015 10:47
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Richard H.
Redaktor
Avatar
Nahoru Odpovědět 18.7.2015 10:57
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
coells
Redaktor
Avatar
Odpovídá na jan.ruzicka01
coells:

Jak rozpoznáš konstrukce?

# Definice
say: what as: who; do
    print: who +  ' says ' + what
end

# Zavolání
say: what as: who
 
Nahoru Odpovědět 18.7.2015 12:58
Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Trochu nechápu jak to myslíš. Mám tu tyto konstrukce:

# Try-Catch-Else(pokud Try "vyjde")
try
    ...
  [fail [TypChyby do]
    ...
  [else
    ...]]
  end

# If: pokud platí, Unless: pokud neplatí
[if | unless] ... do
    ...
 [ elif ... do
    ...
  [else
    ...]]
  end

# Switch
match ... do
    case ... {
        ...
    }

    [else
        ...
    [end]]
  end

# While: dokud podmínka platí, Until: dokud podmínka neplatí
[while | until] ... do
    ...
[elif ... do
    ...
[else
    ...]]
end

# While s pozdní podmínkou
do
    ...
while ... [elif ... do
    ...
[else
    ...]]
end

# Iterátor
for ... in ... do
    ...
[elif ... do
    ...
[else
    ...]]
end

# Přiřazení proměnné
a = 1 + 2 - 3 * 4 / 5 ** 6 // 7

# "Hození" chyby
raise Exception

# Spuštění kódu v textu
do 'print: \'Hello world!\''
Nahoru Odpovědět 19.7.2015 9:22
';' je má jediná noční můra...
Avatar
coells
Redaktor
Avatar
Odpovídá na jan.ruzicka01
coells:

Zajímalo mě, jak rozpoznáš volání a definici funkce.

 
Nahoru Odpovědět 19.7.2015 12:31
Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Volání funkce je několikrát se opakující symbol, za kterým následuje dvojtečka a výraz. Pokud se ve výrazu vyskytuje (na konci výrazu) volání funkce, musí být ukončet středníkem (aby se argumenty jednotlivých funkcí rozlišily). Definice funkce má hlavičku s již zmíněnou gramatikou s tím rozdílem, že místo výrazů (sčítání, volání funkcí, podmínky), jsou zde POUZE identifikátory (vnitřní jména argumentů), a celá hlavička je zakončena středníkem. Poté následuje blok "údajů" (statements), který zase může obsahovat definice funkcí, a je uvozen klíčovým slovem "do" a ukončen slovem "end".

Nahoru Odpovědět 19.7.2015 12:37
';' je má jediná noční můra...
Avatar
coells
Redaktor
Avatar
Odpovídá na jan.ruzicka01
coells:

Co se vytiskne v tomhle případě?

say: word to: receiver; do
  return '->say_to:' + receiver + word
end

say: word; do
  return '->say:' + word
end

to: receiver; do
  return '->to:' + receiver
end

# volani
print: say: say: say: 'a'; to: to: 'b'; + '4'
 
Nahoru Odpovědět 19.7.2015 14:21
Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Vyskytne se syntaktická chyba, protože za jménem argumentu musí následovat hodnota:

print: say: say: say: 'a'; to: to: 'b'; + '4'
                              ^
Nahoru Odpovědět 19.7.2015 14:42
';' je má jediná noční můra...
Avatar
coells
Redaktor
Avatar
Odpovídá na jan.ruzicka01
coells:

To je přece volání funkce: [to: 'b']

EDIT:
A nebo je to možná volání funkce [to: 'b'; + '4'], nejsem si jistý, že jsem úplně pochopil tvoji definici.

Editováno 19.7.2015 14:49
 
Nahoru Odpovědět 19.7.2015 14:48
Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Dobře, v tom případě se vyskytne syntaktická chyba na konci řádku, poněvadž všechny funkce volané uvnitř argumentů musí končit středníkem a dva zde schází. Pokud by zde byl:

print(say(say(say('a'), to=(to('b')+'4'))))

V mém AST je to reprezentováno takto:

([{'call': {'args': ({'name': 'print'}, {'value': {'call': {'args': ({'name': 'say'}, {'value': {'call': {'args': [({'name': 'say'}, {'value': {'call': {'args': ({'name': 'say'}, {'value': {'string': 'a'}})}}}), ({'name': 'to'}, {'value': ({'call': {'args': ({'name': 'to'}, {'value': {'string': 'b'}})}}, '+', {'string': '4'})})]}}})}}})}}], '')
Nahoru Odpovědět 19.7.2015 14:55
';' je má jediná noční můra...
Avatar
vitamin
Člen
Avatar
vitamin:

Programovanie v tomto jazyku je dostatocny trest za jeho vymyslenie. :)

 
Nahoru Odpovědět  ±0 19.7.2015 14:55
Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Nikdo tě nenutí v něm programovat. ;-) Tato syntaxe má uživatele donuti, aby nevolali brutálně vnořené funkce, a raději si jejich hodnoty ukládali do proměnných. Ještě není dodělaný, ale třeba desktopovou aplikaci si představuju takto:

require: 'app'

# Dědění, třídu od funkce rozpoznám tak, že na prvním místě je metoda @init
App(Application) do
    @init: @window, @ui

    @load; do
        @super.load # Funkce a metody bez argumentů se chovají jako atributy -> při vyhodnocování atribut/metoda mají metody přednost
    end

    @render; do
        @super.render

        @ui.add: Label: 'Hello world!'; id: 'helloLabel'
        @ui.add: Button: 'Click me!'; id: 'clickButton'
    end

    @frame; do
        @super.frame
    end

    @event: e; do
        if e == 'clickButtonClicked' do
            @ui.get: 'helloLabel';.text: 'Clicked!'
        end
    end
end
Nahoru Odpovědět 19.7.2015 15:12
';' je má jediná noční můra...
Avatar
mkub
Redaktor
Avatar
mkub:

poriadne nezrozumitelny jazyk... uz ciste Cecko je ovela zrozumitelnejsie na pochopenie, ba aj assembler sa da skor naucit, nez tento gulas...

 
Nahoru Odpovědět  +7 19.7.2015 15:22
Avatar
Richard H.
Redaktor
Avatar
Nahoru Odpovědět 20.7.2015 16:45
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Richard H.
Redaktor
Avatar
Richard H.:

já bych si to představoval spíš takhle.

window my = new window(true); #visible
 my.add(label:text:"ahoj",variable:myLabel)
  function myLabelAction() ;#nevim jak ve tvém jazyce fungují funkce
   print("hello world");
end function
Nahoru Odpovědět 20.7.2015 16:53
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Trošku jsem to upravil:

print: (say: (say: (say: 'a') to: (to: 'b' + '4')))

Vnořené funkce jsou uzavřené v závorkách a jména argumentů nejsou oddělena čárkami. Dá se zde také použít nový C-like zápis, v němž už čárky být musí.

Nahoru Odpovědět 20.7.2015 17:57
';' je má jediná noční můra...
Avatar
vitamin
Člen
Avatar
Odpovídá na jan.ruzicka01
vitamin:

Tato syntaxe má uživatele donuti, aby nevolali brutálně vnořené funkce

Mozes dat priklad comu chces zabranit (a ako a preco)?

 
Nahoru Odpovědět 20.7.2015 17:59
Avatar
jan.ruzicka01
Redaktor
Avatar
Odpovídá na vitamin
jan.ruzicka01:
print(input("Answer this question: '" + input("Enter a question: ") + "'."))

Jak? Vysvětleno výše.
Proč? Protože s jakoukoli syntaxí je to guláš.

Nahoru Odpovědět 20.7.2015 18:06
';' je má jediná noční můra...
Avatar
vitamin
Člen
Avatar
 
Nahoru Odpovědět  ±0 20.7.2015 19:03
Avatar
Ondřej Langr (andysekcze):

Dam ti radu: vys** se na to vzdyt i ASM je proti tomu to co te uci ve skolce ;-)

Nahoru Odpovědět  -4 20.7.2015 22:45
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
coells
Redaktor
Avatar
coells:

Bože můj, Honzo, těch blbů si vůbec nevšímej, zřejmě jim cosi chybí ke štěstí.

Napsat a vymyslet vlastní jazyk není vůbec jednoduché, je to ale o to větší zábava.
Pár jazyků a metajazyků jsem už naprogramoval a byla to vždy sranda.
Podle věku ještě nemůžeš znát věci okolo, to vůbec nevadí, jednodušší postupy často stačí výměnou za nějaký kompromis z hlediska syntaxe jazyka.
Časem se ti takové zkušenosti budou třeba hodit.

 
Nahoru Odpovědět  +6 20.7.2015 23:04
Avatar
BlugW
Redaktor
Avatar
BlugW:

Fascinuje mě to že se tu vždy někdo najde, kdo se bude snažit práci jiného nějak ztrapnit, zhnusit, aniž by sám něco zkusil udělat.

jan.ruzicka01 Určitě na to ne*er jak tu jeden inteligent poradil.
Držím palce ;)

Nahoru Odpovědět  +1 20.7.2015 23:24
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
tomasmanhal
Člen
Avatar
tomasmanhal:

Když zapracuješ na zjednodušení, tak proč ne :-) Jen tak dál jan.ruzicka01 ;-) Když už to nedotáhneš do konce, tak se to dá minimálně brát jako dobrá zkušenost a velké plus k budoucímu uplatnění.

Nahoru Odpovědět 21.7.2015 2:03
Kdyby nám dodali k životu zdrojový kód, vše by bylo jednodušší...
Avatar
vitamin
Člen
Avatar
Odpovídá na Ondřej Langr (andysekcze)
vitamin:

Dokonca aj ked je ten "jazyk" hnusny a skoro nepouzitelny tak pri jeho vytvarani ziskal urcite dost skusenosti ktore mu mozu neskor pomoct vytvorit nieco dobre.

 
Nahoru Odpovědět 21.7.2015 7:13
Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Díky, uznal jsem, že cpát všude "do" se trošku nehodí, takže jsem to trošku předělal a bloky jsou tedy uvozené dvojtečkou, která se narozdíl od "do" nebude zaměňovat. Také (jelikož ten jazyk je vytvořen v mé vlastní knihovně) jsem přemýšlel o přidání podpory odsazení a "od-odsazení".

Nahoru Odpovědět 21.7.2015 9:18
';' je má jediná noční můra...
Avatar
Odpovídá na vitamin
Ondřej Langr (andysekcze):

To sice ano ae je to fakt neprehledne ;-) Jinak autorovu praci uznavam, ale je to proste k nicemu kdyz se v tom vizna max. kazdy 1000 ;-)

Nahoru Odpovědět  -1 21.7.2015 9:32
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Ondřej Langr (andysekcze)
Honza Bittner:

V Assembleru na úrovni psaní awesome ovladačů se vyzná jen malá maličká hrstka lidí a bez nich by si nikdo z nás ani neškrtl. Je to tedy také zbytečné, když se v tom vyzná každý 50 000 000? :-`

Nahoru Odpovědět 21.7.2015 9:42
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Odpovídá na Honza Bittner
Ondřej Langr (andysekcze):

Jenže ten byl mezi prvními a je nizkourovno vi , ale dělat novy zas jeste vic neprehledny je podle me blbost ;-) samozrejme nic ve zlem

Nahoru Odpovědět  -2 21.7.2015 9:54
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Luboš Běhounek (Satik):

S nejvetsi pravdepodobnosti v tom jazyce nikdo krome autora programovat nebude, ale je to dobre cviceni.

Nahoru Odpovědět  +3 21.7.2015 10:18
:)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 61 zpráv z 61.