🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.funkcyjne
11 messages
11 total messages Started by Arek Paterek Tue, 07 Sep 2004 18:52
jujuML
#620
Author: Arek Paterek
Date: Tue, 07 Sep 2004 18:52
16 lines
1233 bytes
Cześć,

napisałem na zaliczenie jednego przedmiotu kompilator języka programowania
jujuML. Język jest próbą przerobienia OCamla na wersję ułatwiającą
programowanie w stylu imperatywnym.
Kompilator jest napisany w OCamlu, język kompilowany jest do bajtkodu
OCamla.

http://rainbow.mimuw.edu.pl/~ap181283/src/studia/8mrjp/

Jestem ciekaw Waszego zdania na temat tego języka.


Pozdrowienia
-- 
Arek Paterek
Re: jujuML
#621
Author: WoJciech
Date: Thu, 09 Sep 2004 13:49
6 lines
1052 bytes
> http://rainbow.mimuw.edu.pl/~ap181283/src/studia/8mrjp/
> 
> Jestem ciekaw Waszego zdania na temat tego języka.
Rewolucji twój język nie robi, ale poczekaj na mój.

WoJciech
Re: jujuML
#622
Author: Arek Paterek
Date: Thu, 09 Sep 2004 18:20
10 lines
1191 bytes
WoJciech <wodud@gazeta.pl> wrote:
>> http://rainbow.mimuw.edu.pl/~ap181283/src/studia/8mrjp/
>> 
>> Jestem ciekaw Waszego zdania na temat tego języka.
> Rewolucji twój język nie robi, ale poczekaj na mój.

Ile jeszcze każesz nam na niego czekać, Wojtku?!

-- 
Arek Paterek
Re: jujuML
#623
Author: Marcin Stefaniak
Date: Thu, 25 Nov 2004 22:45
18 lines
1413 bytes
Arek Paterek <a.paterek.nospam@students.mimuw.edu.pl> napisał(a): 

> napisałem na zaliczenie jednego przedmiotu kompilator języka programowania
> jujuML. Język jest próbą przerobienia OCamla na wersję ułatwiającą
> programowanie w stylu imperatywnym.

Jakie konkretnie ułatwienia w stosunku do OCamla tam wprowadziłeś? Na stronie
projektu dokumentacja jest raczej skąpa... Ja konkretnie to nie programowałem
w OCamlu, ale wydaje mi się że ten język nie stawia przeszkód względem stylu
imperatywnego.

pozdrawiam,

Marcin Stefaniak 


-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: jujuML
#624
Author: Arek Paterek
Date: Fri, 26 Nov 2004 13:55
29 lines
1752 bytes
Marcin Stefaniak <matmis@wytnij.gazeta.pl> wrote:
>> napisałem na zaliczenie jednego przedmiotu kompilator języka programowania
>> jujuML. Język jest próbą przerobienia OCamla na wersję ułatwiającą
>> programowanie w stylu imperatywnym.
> 
> Jakie konkretnie ułatwienia w stosunku do OCamla tam wprowadziłeś? Na stronie
> projektu dokumentacja jest raczej skąpa... Ja konkretnie to nie programowałem
> w OCamlu, ale wydaje mi się że ten język nie stawia przeszkód względem stylu
> imperatywnego.

Cześć,

chodzi głównie o ułatwienia składniowe, np. deklaracje w miejscu przypisania.
Żeby napisać w OCamlu prosty program w stylu imperatywnym, trzeba często
korzystać z konstrukcji tego typu:
let z = 5 in (
  let x = ref 0;
  let y = ref 0;
  x := !z;
  y := !x + 3;
)

W moim języku wystarczy:
z = 5
x = z
y = x + 3

-- 
Arek Paterek
Re: jujuML
#625
Author: Tomasz Zielonka
Date: Fri, 26 Nov 2004 19:29
36 lines
1578 bytes
Arek Paterek wrote:
> chodzi głównie o ułatwienia składniowe, np. deklaracje w miejscu przypisania.
> Żeby napisać w OCamlu prosty program w stylu imperatywnym, trzeba często
> korzystać z konstrukcji tego typu:
> let z = 5 in (
>   let x = ref 0;
>   let y = ref 0;
>   x := !z;
>   y := !x + 3;
> )
>
> W moim języku wystarczy:
> z = 5
> x = z
> y = x + 3

W ocamlu mogłeś po prostu napisać:

  let z = 5 in
  let x = z in
  let y = x + 3 in

Domyślam się, że przykład jest zbyt prosty - nie potrzebuje
programowania imperatywnego.

BTW. co będzie zawierał y po tych instrukcjach?

  x = 0
  y = x
  x = x + 1

Pozdrawiam,
Tomek

-- 
.signature: Too many levels of symbolic links
Re: jujuML
#626
Author: Arek Paterek
Date: Sat, 27 Nov 2004 18:58
34 lines
2019 bytes
Tomasz Zielonka <tomasz.zielonka@gmail.com> wrote:
> W ocamlu mogłeś po prostu napisać:
> 
>  let z = 5 in
>  let x = z in
>  let y = x + 3 in
> 
> Domyślam się, że przykład jest zbyt prosty - nie potrzebuje
> programowania imperatywnego.

Tak. Chciałem zademonstrować, jak wygląda kawałek kodu napisany
w OCamlu w stylu imperatywnym. Składnia OCamla niezbyt sprzyja
takiemu stylowi programowania. To najlepiej widać, jeśli
przetłumaczy się mechanicznie kawałek kodu z C++ na OCamla.

Sporo programuję w C++ i brakuje mi wielu rzeczy w tym języku.
Najbardziej denerwująca jest konieczność pisania nazw typów przy
deklaracji zmiennych. W g++ można sobie radzić, używając __typeof(),
ale np. dla MS VC++ nie znam sposobu na uniknięcie niepotrzebnej
pisaniny.

A w OCamlu jest tyle fajnych mechanizmów: wnioskowanie typów,
polimorfizm funkcji... tylko ta niewygodna składnia...

> BTW. co będzie zawierał y po tych instrukcjach?
> 
>  x = 0
>  y = x
>  x = x + 1

y == 0

-- 
Arek Paterek
Re: jujuML
#627
Author: Tomasz Zielonka
Date: Sat, 27 Nov 2004 22:03
21 lines
1700 bytes
Arek Paterek wrote:
> Tak. Chciałem zademonstrować, jak wygląda kawałek kodu napisany
> w OCamlu w stylu imperatywnym. Składnia OCamla niezbyt sprzyja
> takiemu stylowi programowania. To najlepiej widać, jeśli
> przetłumaczy się mechanicznie kawałek kodu z C++ na OCamla.

Mechaniczne tłumaczenie kodu z C++ na OCamla nie jest najlepszym
pomysłem.

> A w OCamlu jest tyle fajnych mechanizmów: wnioskowanie typów,
> polimorfizm funkcji... tylko ta niewygodna składnia...

Próbowałeś Haskella? Składnia dla programowania imperatywnego też nie
jest cukierkowa, ale znacznie rzadziej potrzebujesz programować
imperatywnie.

Pozdrawiam,
Tomek

-- 
.signature: Too many levels of symbolic links
Re: jujuML
#628
Author: Arek Paterek
Date: Sun, 28 Nov 2004 02:19
23 lines
1974 bytes
Tomasz Zielonka <tomasz.zielonka@gmail.com> wrote:
>> Tak. Chciałem zademonstrować, jak wygląda kawałek kodu napisany
>> w OCamlu w stylu imperatywnym. Składnia OCamla niezbyt sprzyja
>> takiemu stylowi programowania. To najlepiej widać, jeśli
>> przetłumaczy się mechanicznie kawałek kodu z C++ na OCamla.
> 
> Mechaniczne tłumaczenie kodu z C++ na OCamla nie jest najlepszym
> pomysłem.
> 
>> A w OCamlu jest tyle fajnych mechanizmów: wnioskowanie typów,
>> polimorfizm funkcji... tylko ta niewygodna składnia...
> 
> Próbowałeś Haskella? Składnia dla programowania imperatywnego też nie
> jest cukierkowa, ale znacznie rzadziej potrzebujesz programować
> imperatywnie.

Ale ja lubię programowanie imperatywne :)
Funkcyjne jest za trudne. Za dużo trzeba kombinować.

Haskella nie znam, na pewno kiedyś spróbuję, kiedy znajdę czas...

-- 
Arek Paterek
Re: jujuML
#629
Author: Tomasz Zielonka
Date: Sun, 28 Nov 2004 08:33
28 lines
2305 bytes
Arek Paterek wrote:
> Ale ja lubię programowanie imperatywne :)
> Funkcyjne jest za trudne. Za dużo trzeba kombinować.

Bo ja wiem... mnie częściej głowa boli od programowania imperatywnego :)

Tak przy okazji, OCaml jest trochę dziwny jako język funkcyjny. Jak na
mój gust biblioteki standardowe wykorzystują imperatywność zbyt często.
Przecież nawet w takim Pythonie, który raczej nie jest językiem
funkcyjnym, typ napisowy nie posiada operacji modyfikujących.

Takie języki jak OCaml mogą powodować błędne przekonanie o umiejętności
programowania funkcyjnego / deklaratywnego. Spójrz np. na stronę
  http://tygrysek.wpk.p.lodz.pl/sknauk/prj.pl
Jest tam ogłoszenie o zamieszczeniu zestawu przykładów w języku Scheme
zapisanych deklaratywnie. Same przykłady znajdują się w "Worek" /
"Projekty" / "Wojciech Polak" / "Scheme". 

Jak popatrzę na te programy, to już nie wiem co oznacza deklaratywność,
np. czym to się różni od typowego programu w C++? W każdym przykładzie
używane są mechanizmy imperatywne (set!, set-car!).  Może chodzi o
użycie wbudowanego typu listy i dużą liczbę nawiasów? :)

Pozdrawiam,
Tomek

-- 
.signature: Too many levels of symbolic links
Re: jujuML
#630
Author: Marcin Stefaniak
Date: Tue, 30 Nov 2004 20:44
19 lines
1801 bytes
Arek Paterek <a.paterek.nospam@students.mimuw.edu.pl> napisał(a): 

> A w OCamlu jest tyle fajnych mechanizmów: wnioskowanie typów,
> polimorfizm funkcji... tylko ta niewygodna składnia...

Skoro o językach i składni mowa, co sądzicie o Nemerle? Z dokumentacji wygląda
ładnie, ale osobiście go nie używałem, więc nie wypowiem się. 

Zresztą, od składni bardziej dla mnie liczy się wygoda IDE, więc pewnie jak
bym chciał rozwijać własny język programowania to na zasadzie ewolucji już
istniejącego języka z IDE. Ale może pojawi się jakiś dobry plugin eclipsowy do
jakiegoś miłego języka i nie będzie to mi opłacalne. Czy do jakiegoś
nowoczesnego języka funkcyjnego możecie polecić jakieś dobre IDE (takie jak
Eclipse/JDT powiedzmy)?

Marcin Stefaniak

-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads