🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.objects
46 messages
46 total messages Started by A.L. Thu, 03 Nov 2005 16:19
Domain Specific Modeling
#13014
Author: A.L.
Date: Thu, 03 Nov 2005 16:19
12 lines
1036 bytes
Moze zamiast zajmowac sie odwiecznym problemem wyzszosci jednych swiat
nad drugimi dobrze byloby popatrzec na nowe rzeczy, na przyklad
Domain-Specific Modeling, ktore to zaczyna nabierac niejakiego
rozpedu.

Patrz

http://www.dsmforum.org/

http://www.dsmforum.org/events/DSM05/Papers.html

A.L.
Re: Domain Specific Modeling
#13015
Author: Aleksander Galicki
Date: Thu, 03 Nov 2005 17:14
29 lines
2028 bytes
A.L. <lewando_won_@kalabambuko.com> napisał(a): 

> Moze zamiast zajmowac sie odwiecznym problemem wyzszosci jednych swiat
> nad drugimi dobrze byloby popatrzec na nowe rzeczy, na przyklad
> Domain-Specific Modeling, ktore to zaczyna nabierac niejakiego
> rozpedu.

"Niejaki rozped" to chyba oznacza, ze sama idea zaczyna nabierac wiekszego 
rozglosu. 
Idea - ze kazdej pojeciowej domenie moze odpowiadac pewien jezyk 
do "modelowania" i ze ten jezyk jest dostosowany do tej wlasnie domeny - jest 
sluszna i ciekawa, ale na razie jest to raczej gola idea i pewne dosc 
zroznicowane przypadki zastosowan. Nie wiadomo (przynajmniej dla mnie) czy z 
tych istniejacych i tych ktore dopiero powstana narzedzi i jezykow da sie 
wyabstrahowac cos wiecej niz podane przeze mnie trywialne streszczenie. Mam 
wrazenie ze "na koncu" moze sie okazac ze tzw Domain-Specific Modeling bedzie 
niczym wiecej tylko zbiorem narzedzi powiazanych dosc trywialna, choc 
sluszna, idea.

Ale juz od jakiegos czasu nie sledze postepow w tej dzialce, wiec poogladam 
sobie ten portal.

BTW: pare lat temu MS sie chyba tym interesowal - wyroslo cos z tego?


A.

-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Domain Specific Modeling
#13016
Author: radoslaw tereszczuk
Date: Thu, 03 Nov 2005 20:41
16 lines
1548 bytes
> BTW: pare lat temu MS sie chyba tym interesowal - wyroslo cos z tego?

tak wyroslo i sa bety narzedzi << gdy sie tym interesowalem nie bylo tego za 
duzo, niewiem jak jest teraz

http://lab.msdn.microsoft.com/teamsystem/workshop/sf/default.aspx << 
"softare factories" marketingowo to sie trzyma kupy :O)

http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/default.aspx << 
narzedzia

jesli sie ktos tym bawil << jestem ciekaw wrazen

ot: kilka dni temu ms wypuscil nowy preview linq dzialajacy na .net 2 rtm >> 
http://msdn.microsoft.com/netframework/future/linq/ 
[ot] Re: Domain Specific Modeling
#13017
Author: radoslaw tereszczuk
Date: Thu, 03 Nov 2005 20:48
10 lines
1652 bytes
jeszcze a propo tego "nic sie nie zmienia w pracy programisty"

dzis musialem trohe popisac pod Win32 (jakos lepiej to to pamietalem niz mfc 
;p) i gdy poruwnac to do avalonika/wpf i tego wszystkiego czym ms raczy nas 
dzis to ruznica jednak jest ; oczywiscie pewne fragmenty kodu dalej 
wygladaja tak samo, ale to co stalo sie z programowaniem gui (i kilku innyh 
rzeczy ale to za dluga dyskusja ;p) to jednak mala rewolucja. gdy wrucilem 
do nieruszanego od jakihs 8miu lat Petzolda (dla mlodzikuw: standardowa 
ksiazka o programowaniu win16/32) to na poczatku sie trohe przestraszylem 
czy podolam :O) 
Re: Domain Specific Modeling
#13018
Author: Aleksander Galicki
Date: Fri, 04 Nov 2005 11:09
41 lines
2938 bytes
radoslaw tereszczuk <tereszczuk@it1.pl> napisał(a): 

> 
> > BTW: pare lat temu MS sie chyba tym interesowal - wyroslo cos z tego?
> 
> tak wyroslo i sa bety narzedzi << gdy sie tym interesowalem nie bylo tego za 
> duzo, niewiem jak jest teraz

Ja w tej chwili dopiero zaczynam sie przedzierac przez niezbyt poukladane
dokumenty od MS, ale tzw FAQ jest conajmniej confusing.

"We call modeling languages defined in these ways Domain Specific Languages or
DSLs. Think of a DSL as a small, highly focused language for solving some
clearly identifiable problem that an analyst, architect, developer, tester, or
system administrator must wrestle with. Developers are already familiar with
examples of DSLs; SQL for data manipulation, XSD for XML document structure
definition, and so on. Another example from Visual Studio Team Edition for
Software Architects is a DSL for modeling the logical structure of datacenter
hardware and host software configurations. This DSL and its related graphical
designer can be used to validate during design time that applications are
configured to match their intended deployment targets, alerting the developer
to problems when they can be fixed more cheaply.

Good ways to find candidate DSLs are to identify the patterns used by
developers, and then to encapsulate them into a modeling language, or to
surface the concepts in a software framework as abstractions in a modeling
language that can then generate small amounts of code that extend the
framework. These techniques allow us to control the amount and complexity of
generated code, offering real value to the developers, without the hassles
that characterized CASE products."

Wynika z tego np. ze przykladem DSL jest SQL(to chyba jakies nieporozumienie),
a "good ways to find candidate DSLs are to identify the patterns used by
developers". Na pierwszy rzut oka wyglada to na kolejny framework do
generwania kodu z obrazkow. Zobacze co tam dalej pisza.


A.

-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Domain Specific Modeling
#13019
Author: Michal Przybylek
Date: Fri, 04 Nov 2005 13:43
18 lines
1748 bytes
"Aleksander Galicki" <tretete.SKASUJ@gazeta.pl> wrote:

> Mam wrazenie ze "na koncu" moze sie okazac ze tzw Domain-Specific
> Modeling bedzie niczym wiecej tylko zbiorem narzedzi powiazanych
> dosc trywialna, choc sluszna, idea.

A to zle ? Wlasnie czegos takiego bym oczekiwal i, na moje, rozwoj tego typu
narzedzi bedzie wlasciwym krokiem w strone tego "innego programowania",
ktore chce AL.

Jakies 5 lat temu uzywalem narzedzi, bardzo biednych wtedy, do pewnego
specjalistycznego programowania mikrosterownikow. Wydladalo to tak, ze
rysowalo sie schemat blokowy jak dany sterownik ma reagowac na sygnaly i z
tego generowany byl odpowiedni kod pod opdowiedni klocek. Pomimo kompletnego
niedopracowania tych narzedzi, bardzo je sobie cenilem.


mp
Re: Domain Specific Modeling
#13020
Author: Sektor van Skijlen
Date: Fri, 04 Nov 2005 14:27
29 lines
2436 bytes
Dnia Fri, 4 Nov 2005 14:43:32 +0100, Michal Przybylek skrobie:
> "Aleksander Galicki" <tretete.SKASUJ@gazeta.pl> wrote:

> > Mam wrazenie ze "na koncu" moze sie okazac ze tzw Domain-Specific
> > Modeling bedzie niczym wiecej tylko zbiorem narzedzi powiazanych
> > dosc trywialna, choc sluszna, idea.

> A to zle ? Wlasnie czegos takiego bym oczekiwal i, na moje, rozwoj tego typu
> narzedzi bedzie wlasciwym krokiem w strone tego "innego programowania",
> ktore chce AL.

> Jakies 5 lat temu uzywalem narzedzi, bardzo biednych wtedy, do pewnego
> specjalistycznego programowania mikrosterownikow. Wydladalo to tak, ze
> rysowalo sie schemat blokowy jak dany sterownik ma reagowac na sygnaly i z
> tego generowany byl odpowiedni kod pod opdowiedni klocek. Pomimo kompletnego
> niedopracowania tych narzedzi, bardzo je sobie cenilem.

Ale ta domena programowania jest znacznie prostsza od tworzenia oprogramowania
ogólnego.

Ja jestem tradycyjnie sceptyczny co do takich technologii, bo przymiarki do
tego już były, powstało nawet wiele ciekawych i dobrych narzędzi, ale jakoś
pisania gołego tekstu to nie wyeliminowało.

-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethourhs(O)wp.pl>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Re: Domain Specific Modeling
#13024
Author: Aleksander Galicki
Date: Fri, 04 Nov 2005 14:36
35 lines
2397 bytes
Michal Przybylek <mrp@neostrada.pl> napisał(a): 

> "Aleksander Galicki" <tretete.SKASUJ@gazeta.pl> wrote:
> 
> > Mam wrazenie ze "na koncu" moze sie okazac ze tzw Domain-Specific
> > Modeling bedzie niczym wiecej tylko zbiorem narzedzi powiazanych
> > dosc trywialna, choc sluszna, idea.
> 
> A to zle ? 

Zle? Nie oceniam tego w kategoriach moralnych. Ale niewiele z tego wynika.
Obecne stadium DSM mozna okreslic jako probe zorganizowania szumu medialnego
wokol tej idei.

A na pierwszej stronie www.dsmforum.org mozna znalezc: "Industrial experiences
of DSM consistently show it to be 5-10 times faster than current practices".
Tymczasem wszystkie mi znane duze projekty, ktore bazowaly na generowaniu kodu
z obrazkow to byly dosc spektakularne klapy. Nie mowie, ze zawsze tak musi byc....

Czasem tez precyzuje sie, ze jakis "ekspert" bedzie dla konkretnej firmy,
konkretnego produktu i konkretnej domeny definiowal ten domain
language, ktory potem bedzie z powodzeniem uzywany do tworzenia softu. To co
dla mnie wyglada na "haczyk" jest nastepujace: jak ten ekspert bedzie
definiowal ow jezyk, co to za magiczne narzedzie bedzie posiadal do
definiowana jezykow domenowych? Zagadnienie jest chyba nietrywialne, a kilka
prob stworzenia czegos takiego, ktore widzialem, konczyly sie kompletnie
nieuzytecznym narzedziem. Vide - http://www.jetbrains.com/mps/

Wiec ja na razie zaczekam, az ktos mi pokaze takie narzedzie.


A. 

-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Domain Specific Modeling
#13025
Author: A.L.
Date: Fri, 04 Nov 2005 16:12
64 lines
3975 bytes
On Fri, 4 Nov 2005 14:36:49 +0000 (UTC), "Aleksander Galicki"
<tretete.SKASUJ@gazeta.pl> wrote:

>Michal Przybylek <mrp@neostrada.pl> napisa³(a): 
>
>> "Aleksander Galicki" <tretete.SKASUJ@gazeta.pl> wrote:
>> 
>> > Mam wrazenie ze "na koncu" moze sie okazac ze tzw Domain-Specific
>> > Modeling bedzie niczym wiecej tylko zbiorem narzedzi powiazanych
>> > dosc trywialna, choc sluszna, idea.
>> 
>> A to zle ? 
>
>Zle? Nie oceniam tego w kategoriach moralnych. Ale niewiele z tego wynika.
>Obecne stadium DSM mozna okreslic jako probe zorganizowania szumu medialnego
>wokol tej idei.
>
>A na pierwszej stronie www.dsmforum.org mozna znalezc: "Industrial experiences
>of DSM consistently show it to be 5-10 times faster than current practices".
>Tymczasem wszystkie mi znane duze projekty, ktore bazowaly na generowaniu kodu
>z obrazkow to byly dosc spektakularne klapy. Nie mowie, ze zawsze tak musi byc....
>

Pozwalam sie nie zgodzic. Moja firma jakies 15 lat temu wymyslila
"domain language" do supply chain management, i rzeczywiscie skrocila
czas wykonywania projektow 10 krotnie mniej wiecej, eliminujac w ten
sposob sporo konkurencji. Ow tool jest uzywany do dzis ze swietnym
skutkiem. Oczywiscie, od tego czasu pzreszedl co najmniej jedna
operacje kosmetyczna a teraz przechodzi druga.

Niw ma zadnych "obrazkow do rysowania", a system sie konstruuje piszac
specyfikacje w specjalnym jezyku skryptowym ktory jest potem
kompilowany do "glue codu" w Javie lub C++, zaleznie od wariantu.
Owymi skryptami mozna rowneiz do pewnego stopnia konfigurowac
"templates"

Zreszta, my nie jestesmy jedyni, a owe "domains" sa zupelnie rozne.
Sam mam na sumieniu "domain language" do modelowania sieci gazociagow.
Byl napisany w ciagu miesiaca, a "glue code" generowal przy pomocy
skryptow interpretowanych pzrez makrogenerator M4 (hej, kto pamieta co
to jest?...). Mimo ze byl napisany "ad hoc" z perspektywa uzywania
pzrez miesiac, do dzis pokutuje w roznych wariantach (byl napisany we
wczesnych latach 80 i generowal program w Ratforze. Jakis czas pozniej
zmienilem to na C i tak zostalo).

Przyklady mozna mnozyc.

>Czasem tez precyzuje sie, ze jakis "ekspert" bedzie dla konkretnej firmy,
>konkretnego produktu i konkretnej domeny definiowal ten domain
>language, ktory potem bedzie z powodzeniem uzywany do tworzenia softu. To co
>dla mnie wyglada na "haczyk" jest nastepujace: jak ten ekspert bedzie
>definiowal ow jezyk, co to za magiczne narzedzie bedzie posiadal do
>definiowana jezykow domenowych? Zagadnienie jest chyba nietrywialne, a kilka
>prob stworzenia czegos takiego, ktore widzialem, konczyly sie kompletnie
>nieuzytecznym narzedziem. Vide - http://www.jetbrains.com/mps/

Ogolnie chodzi o to, jak mniemam, aby miec ogolne narzedzia
(meta-narzedzia?...) do a) specyfikowania domain specific components,
b) generowania "glue code" lub generowania generatorow "glue code".
Nei wydaje  mi sie zeby to bylo niemozliwe/skrajnie trudne.

A.L.

P.S. A Pan Przybylek ma racje: ja w tym upatruje "nastepny krok".
Re: Domain Specific Modeling
#13026
Author: Aleksander Galicki
Date: Fri, 04 Nov 2005 17:45
49 lines
3566 bytes
> Przyklady mozna mnozyc.

OK. Ja pisalem raczej o tych projektach, w ktorch chyba wierzono ze jak kod
bedzie sie generowal, ze jak beda modele, bedzie nowoczesnosc itp, to bedzie
dobrze.

> >Czasem tez precyzuje sie, ze jakis "ekspert" bedzie dla konkretnej firmy,
> >konkretnego produktu i konkretnej domeny definiowal ten domain
> >language, ktory potem bedzie z powodzeniem uzywany do tworzenia softu. To co
> >dla mnie wyglada na "haczyk" jest nastepujace: jak ten ekspert bedzie
> >definiowal ow jezyk, co to za magiczne narzedzie bedzie posiadal do
> >definiowana jezykow domenowych? Zagadnienie jest chyba nietrywialne, a kilka
> >prob stworzenia czegos takiego, ktore widzialem, konczyly sie kompletnie
> >nieuzytecznym narzedziem. Vide - http://www.jetbrains.com/mps/
> 
> Ogolnie chodzi o to, jak mniemam, aby miec ogolne narzedzia
> (meta-narzedzia?...) do a) specyfikowania domain specific components,
> b) generowania "glue code" lub generowania generatorow "glue code".
> Nei wydaje  mi sie zeby to bylo niemozliwe/skrajnie trudne.

Stworzenie ogolnego narzedzia moze byc bardzo trudne. To tylko taka moja
intuicja, ale postaram sie ja uzasadnic. W pewnym sensie takie narzedzia juz
istnieja - narzedzia do tworzenia kompilatorow i parserow. Bo to o czym
piszesz imho sprowadza sie do wymyslenia jezyka i stworzenia kompilatora.
Kluczem jest oczywiscie to, ze jezyk powinien dobrze oddawac istote konkretnej
domeny, a kompilator powinien generowac dobry kod. Wg mnie sa istotne dwie
sprawy: a) kiedy mozna uznac, ze projekt powinien sie zaczac od stworzenia
dedykowanego jezyka/kompilatora, a kiedy nalezy to sobie odpuscic? b) ja mam
pewne problemy z wyobrazeniem sobie powszechnej praktyki polegajacej na
tworzeniu jezykow/kompilatorow w trakcie czy przed poczatkiem projektu - moje
obawy dotycza tego, ze w wielu sytuacjach podobny zabieg moze zwielokrotnic
zlozonosc problemu, a nie uproscic. Wydaje mi sie, ze podobne problemy widza
rowniez proponenci DSM, bo mimo, ze narzedzia do parserow/kompilatorow sa
obecne nie od wczoraj, to jednak chyba nie nadaja sie na "meta-narzedzia" o
ktorych piszesz. Zeby DSM bardziej przemowilo do przemyslu, te
"meta-narzedzia" powinny byc prostsze niz narzedzia do parserow/kompilatorow,
a jednoczescie oferowac podobne, albo nawet wieksze, mozliwosci. A to jest
problem.

BTW: Jesli pokazanie probek kodu w ,,"domain language" do supply chain
management'' nie spowoduje wyciek cennych informacji z Twojej firmy albo
innych strat, moglbys pokazac?


A.


-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Domain Specific Modeling
#13030
Author: Sektor van Skijlen
Date: Fri, 04 Nov 2005 18:50
37 lines
2762 bytes
Dnia Fri, 04 Nov 2005 10:12:10 -0600, A.L. skrobie:
> Niw ma zadnych "obrazkow do rysowania", a system sie konstruuje piszac
> specyfikacje w specjalnym jezyku skryptowym ktory jest potem
> kompilowany do "glue codu" w Javie lub C++, zaleznie od wariantu.
> Owymi skryptami mozna rowneiz do pewnego stopnia konfigurowac
> "templates"

No właśnie. Na ile "specjalny" jest ten język skryptowy? Bo o ile dobrze
kojarzę, to do właśnie tego celu znajomy podsunął mi pomysł wykorzystania do
tego celu Tcl-a. Jest to na tyle elastyczny język, że w zasadzie można go
wykorzystać do stworzenia funkcjonalnego opisu czegokolwiek.

> Zreszta, my nie jestesmy jedyni, a owe "domains" sa zupelnie rozne.
> Sam mam na sumieniu "domain language" do modelowania sieci gazociagow.

Tzn. który aspekt tego modelowania się robiło właśnie w tym?

> Byl napisany w ciagu miesiaca, a "glue code" generowal przy pomocy
> skryptow interpretowanych pzrez makrogenerator M4 (hej, kto pamieta co
> to jest?...).

Takie gówno do generowania Makefile'a z autoconfa.
;)

> Mimo ze byl napisany "ad hoc" z perspektywa uzywania
> pzrez miesiac, do dzis pokutuje w roznych wariantach (byl napisany we
> wczesnych latach 80 i generowal program w Ratforze. Jakis czas pozniej
> zmienilem to na C i tak zostalo).

Prowizorki nie pierwszy raz okazują się najtrwalszymi konstrukcjami.


-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethourhs(O)wp.pl>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Re: Domain Specific Modeling
#13027
Author: A.L.
Date: Fri, 04 Nov 2005 19:22
29 lines
2340 bytes
On Fri, 4 Nov 2005 17:45:08 +0000 (UTC), "Aleksander Galicki"
<tretete.SKASUJ@gazeta.pl> wrote:

>>  
>
>Stworzenie ogolnego narzedzia moze byc bardzo trudne. To tylko taka moja
>intuicja, ale postaram sie ja uzasadnic. W pewnym sensie takie narzedzia juz
>istnieja - narzedzia do tworzenia kompilatorow i parserow. Bo to o czym
>piszesz imho sprowadza sie do wymyslenia jezyka i stworzenia kompilatora.
>Kluczem jest oczywiscie to, ze jezyk powinien dobrze oddawac istote konkretnej
>domeny, a kompilator powinien generowac dobry kod. Wg mnie sa istotne dwie
>sprawy: a) kiedy mozna uznac, ze projekt powinien sie zaczac od stworzenia
>dedykowanego jezyka/kompilatora, a kiedy nalezy to sobie odpuscic? b) ja mam
>pewne problemy z wyobrazeniem sobie powszechnej praktyki polegajacej na
[...]

Owszem, ale wydaje mi sie ze nalezy nad tym pracowac. Zreszta, kiedys
mowiono ze maszyna ciezsza od powietrza nigdy nie bedzie latac...
>
>BTW: Jesli pokazanie probek kodu w ,,"domain language" do supply chain
>management'' nie spowoduje wyciek cennych informacji z Twojej firmy albo
>innych strat, moglbys pokazac?

Niestety, jest to scisle strzezona tajemnica firmy... Zblizone jest
wszakze do jezyka naturalnego. Nie jest specjalnie skomplikowany ow
jezyk; BNF definicja zajmuje okolo poltorej strony. Powiedzmy, cos o
zlozonosci jezyka Basic z roznymi dodatkowymi bajerami...

A.L.
Re: Domain Specific Modeling
#13031
Author: A.L.
Date: Fri, 04 Nov 2005 19:35
46 lines
2959 bytes
On Fri, 4 Nov 2005 18:50:39 +0000 (UTC), Sektor van Skijlen
<ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

>Dnia Fri, 04 Nov 2005 10:12:10 -0600, A.L. skrobie:
>> Niw ma zadnych "obrazkow do rysowania", a system sie konstruuje piszac
>> specyfikacje w specjalnym jezyku skryptowym ktory jest potem
>> kompilowany do "glue codu" w Javie lub C++, zaleznie od wariantu.
>> Owymi skryptami mozna rowneiz do pewnego stopnia konfigurowac
>> "templates"
>
>No w³a¶nie. Na ile "specjalny" jest ten jêzyk skryptowy? Bo o ile dobrze
>kojarzê, to do w³a¶nie tego celu znajomy podsun±³ mi pomys³ wykorzystania do
>tego celu Tcl-a. Jest to na tyle elastyczny jêzyk, ¿e w zasadzie mo¿na go
>wykorzystaæ do stworzenia funkcjonalnego opisu czegokolwiek.
>

Wtedy nie bylo Tcl-a

>> Zreszta, my nie jestesmy jedyni, a owe "domains" sa zupelnie rozne.
>> Sam mam na sumieniu "domain language" do modelowania sieci gazociagow.
>
>Tzn. który aspekt tego modelowania siê robi³o w³a¶nie w tym?
>

Taki ze siec gazociagow opisuje sie a) rownaniem rozniczkowym
czastkowym opisujacym indywidualna rure, b) warunkami brzegowymi dla
tychze, c) rownaniami wezlow. Nalezy to wszystko polaczyc ze soba
dobierajac warunki brzegowe w wezlach odpowiednio aby nie byly
sprzeczne i spelnione byly prawa zachowania w wezlach (czasem tam byl
kompresor), a potem stosujec metode zwana "metoda prostych" sprowadzic
to wszystko do wiekiego ukladu rownan rozniczkowych zwyczajnych. Ow
"domain language"  opisywal topologie sieci  a M4 generowal procedure
w Ratforze ktora byla wolana przez solver. Byl jeszcze proces
odwrotny, zeby z wynikow (wielkiej tablicy) wyaciagnac wyniki
odpowiadajace poszczegolnym rurom i wezlom.

>> Byl napisany w ciagu miesiaca, a "glue code" generowal przy pomocy
>> skryptow interpretowanych pzrez makrogenerator M4 (hej, kto pamieta co
>> to jest?...).
>
>Takie gówno do generowania Makefile'a z autoconfa.
>;)

M4 to Absolutnie Wspaniala Rzecz.

A.L.
Re: Domain Specific Modeling
#13032
Author: Sektor van Skijlen
Date: Fri, 04 Nov 2005 21:24
55 lines
3508 bytes
Dnia Fri, 04 Nov 2005 13:35:02 -0600, A.L. skrobie:
> >No w?a?nie. Na ile "specjalny" jest ten j?zyk skryptowy? Bo o ile dobrze
> >kojarz?, to do w?a?nie tego celu znajomy podsun?? mi pomys? wykorzystania do
> >tego celu Tcl-a. Jest to na tyle elastyczny j?zyk, ?e w zasadzie mo?na go
> >wykorzysta? do stworzenia funkcjonalnego opisu czegokolwiek.
> >

> Wtedy nie bylo Tcl-a

Aha. Ale byłby dobrym wyborem do takiego celu?

> >> Zreszta, my nie jestesmy jedyni, a owe "domains" sa zupelnie rozne.
> >> Sam mam na sumieniu "domain language" do modelowania sieci gazociagow.
> >
> >Tzn. który aspekt tego modelowania si? robi?o w?a?nie w tym?
> >

> Taki ze siec gazociagow opisuje sie a) rownaniem rozniczkowym
> czastkowym opisujacym indywidualna rure, b) warunkami brzegowymi dla
> tychze, c) rownaniami wezlow. Nalezy to wszystko polaczyc ze soba
> dobierajac warunki brzegowe w wezlach odpowiednio aby nie byly
> sprzeczne i spelnione byly prawa zachowania w wezlach (czasem tam byl
> kompresor), a potem stosujec metode zwana "metoda prostych" sprowadzic
> to wszystko do wiekiego ukladu rownan rozniczkowych zwyczajnych.

Horror. ;)

> Ow "domain language"  opisywal topologie sieci  a M4 generowal procedure
> w Ratforze ktora byla wolana przez solver. Byl jeszcze proces
> odwrotny, zeby z wynikow (wielkiej tablicy) wyaciagnac wyniki
> odpowiadajace poszczegolnym rurom i wezlom.

Wygląda to nieźle - ale biorąc pod uwagę Ratfora, to wygląda na to, że w
ogólności cały temat DSL jest co najmniej tak stary jak współcześnie używane
języki oprogramowania...

> >> Byl napisany w ciagu miesiaca, a "glue code" generowal przy pomocy
> >> skryptow interpretowanych pzrez makrogenerator M4 (hej, kto pamieta co
> >> to jest?...).
> >
> >Takie gówno do generowania Makefile'a z autoconfa.
> >;)

> M4 to Absolutnie Wspaniala Rzecz.

Nie, no nie przeczę; wbrew pana nieco kpiarskiemu komentarzowi, m4 jest wciąż
dość szeroko wykorzystywany. Ale ja jakoś się nigdy nie mogłem do niego
przekonać.


-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethourhs(O)wp.pl>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Re: Domain Specific Modeling
#13034
Author: Michal Przybylek
Date: Fri, 04 Nov 2005 21:58
24 lines
2032 bytes
"Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> > Wtedy nie bylo Tcl-a
>
> Aha. Ale byłby dobrym wyborem do takiego celu?

Nie. I daj sobie spokoj z Tcl'em, to jeden z durniejszych jezykow jaki
powstal ;-)

Byl juz wtedy Lisp.
Byl wykorzystywany jako DSL.

A co z tego wyszlo ? Zaprojektowanie DSL we wlasciwy sposob, jest czynnoscia
piekielnie trudna, zas przecietny czloweik ma problemy z rozwiazywaniem
przecietnych problemow... Eh, lapka do gory, kto w ogole jest sobie w stanie
wyobrazic w jaki sposob mozna dodac kontynuacje do jezyka, ktory ich nie
posada ? W Lisp'ie takie rzeczy robiono - np. Screamer generalnie
wykorzystuje haki podobnego typu.

Mowiac o Screamer'ze... Wychodzi tu tez drugi problem z przeprogramowywaniem
jezyka. Zapytaj sie AL'a dlaczego uzywa Prolog a nie Screamer w pracy :-)


mp
Re: Domain Specific Modeling
#13035
Author: A.L.
Date: Fri, 04 Nov 2005 22:04
12 lines
1395 bytes
On Fri, 4 Nov 2005 22:58:13 +0100, "Michal Przybylek"
<mrp@neostrada.pl> wrote:
 
>
>Mowiac o Screamer'ze... Wychodzi tu tez drugi problem z przeprogramowywaniem
>jezyka. Zapytaj sie AL'a dlaczego uzywa Prolog a nie Screamer w pracy :-)
>

Niestety, od autora Screamera wiem ze jest to produkt niedokonczony,
nie wspierany, nie aktualizowany, i w ogole porzucony.

A.L.
Re: Domain Specific Modeling
#13033
Author: A.L.
Date: Fri, 04 Nov 2005 22:09
38 lines
2272 bytes
On Fri, 4 Nov 2005 21:24:43 +0000 (UTC), Sektor van Skijlen
<ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

>Dnia Fri, 04 Nov 2005 13:35:02 -0600, A.L. skrobie:
 
>
>> Wtedy nie bylo Tcl-a
>
>Aha. Ale by³by dobrym wyborem do takiego celu?
>

Czy ja wiem?...
 
>Wygl±da to nie¼le - ale bior±c pod uwagê Ratfora, to wygl±da na to, ¿e w
>ogólno¶ci ca³y temat DSL jest co najmniej tak stary jak wspó³cze¶nie u¿ywane
>jêzyki oprogramowania...
>

Owszem, rzecz jest dosyc stara, poczatki pochodza z konca lat 50.
Rozne dziwne rzeczy ludzie robili... Tyle tylko, ze wszystkie "domain
languages" byly a) ad hoc, b) wysoce specjalizowane, c) jeden nie
podobny do drugiego. Jak sadze, obecny trend to wymyslenie czegos co
by nie zmuszalo do "odkrywania zarowki" za kazdym razem gdy sie chce
cos takiego zrobic...
 
>
>> M4 to Absolutnie Wspaniala Rzecz.
>
>Nie, no nie przeczê; wbrew pana nieco kpiarskiemu komentarzowi, m4 jest wci±¿
>do¶æ szeroko wykorzystywany. Ale ja jako¶ siê nigdy nie mog³em do niego
>przekonaæ.

Ja zas jestem zagorzalym milosnikiem makroprocesorow. Takie mam hobby.
M4 to naprawde wspaniala rzecz. Nie mowiac o GPM czy ML1.
Makroporcesory uniwersalne to jedna z piekniejszych rzeczy jakie
computer science wymyslila...

A.L.
Re: Domain Specific Modeling
#13028
Author: Michal Przybylek
Date: Fri, 04 Nov 2005 22:12
22 lines
2012 bytes
"Aleksander Galicki" <tretete.SKASUJ@gazeta.pl> wrote:

> Stworzenie ogolnego narzedzia moze byc bardzo trudne.
> To tylko taka moja intuicja, ale postaram sie ja uzasadnic.

Mam identyczna intuicje. To czego ja bym sobie zyczyl, to powstawanie
kolejnych narzedzi przeznaczonych do konkretnych, typowych zastosowan. Coraz
szerszych zastosowan.

A specjalnie dla AL analogia:

Nie chcial bym aby bylo tak, ze kiedy facio ma wykopac dziure, to idze,
wzywa sztab naukowcow, aby zaprojektowali mu specjalnie lopate pod kopanie
tej dziury, biorac pod uwage glebokosc dziury, szerokosc, dlugosc, twardosc
gleby, wzrost kopacza i polozenie jego punktu ciezkosci.

Chcialbym aby bylo tak, ze kiedy facio ma wykopac dziure to idzie do sklepu
i kupuje sobie taka lopate jaka bedzie odpowiednia do wykopania tej dziury.
Moze nie bedzie to lopata idealna, ale wystarczajaco dobra.


mp
Re: Domain Specific Modeling
#13029
Author: A.L.
Date: Fri, 04 Nov 2005 22:12
27 lines
2018 bytes
On Fri, 4 Nov 2005 23:12:32 +0100, "Michal Przybylek"
<mrp@neostrada.pl> wrote:

>"Aleksander Galicki" <tretete.SKASUJ@gazeta.pl> wrote:
>
>> Stworzenie ogolnego narzedzia moze byc bardzo trudne.
>> To tylko taka moja intuicja, ale postaram sie ja uzasadnic.
>
>Mam identyczna intuicje. To czego ja bym sobie zyczyl, to powstawanie
>kolejnych narzedzi przeznaczonych do konkretnych, typowych zastosowan. Coraz
>szerszych zastosowan.
>
>A specjalnie dla AL analogia:
>
>Nie chcial bym aby bylo tak, ze kiedy facio ma wykopac dziure, to idze,
>wzywa sztab naukowcow, aby zaprojektowali mu specjalnie lopate pod kopanie
>tej dziury, biorac pod uwage glebokosc dziury, szerokosc, dlugosc, twardosc
>gleby, wzrost kopacza i polozenie jego punktu ciezkosci.
>
>Chcialbym aby bylo tak, ze kiedy facio ma wykopac dziure to idzie do sklepu
>i kupuje sobie taka lopate jaka bedzie odpowiednia do wykopania tej dziury.
>Moze nie bedzie to lopata idealna, ale wystarczajaco dobra.
>

Ja tez bym chcial.  Ino nie ma takiego sklepu.

A.L.
Re: Domain Specific Modeling
#13036
Author: Michal Przybylek
Date: Fri, 04 Nov 2005 22:20
13 lines
1728 bytes
"A.L." <lewando_won_@kalabambuko.com> wrote:

> Niestety, od autora Screamera wiem ze jest to produkt
> niedokonczony, nie wspierany, nie aktualizowany, i w ogole porzucony.

Ja zas slyszalem, ze produkt ten jest tak dobry, ze od ponad 10 lat nie
wymaga aktualizacji. A jezeli czegos brakuje, to... Masz kod Screamer'a ?
Masz. Masz raczki ? Masz. No to to se dorob, to czego brakuje :-)

Ten drugi problem to wlasnie odpowiednie "wsparcie".


mp
Re: Domain Specific Modeling
#13037
Author: A.L.
Date: Fri, 04 Nov 2005 22:49
16 lines
1656 bytes
On Fri, 4 Nov 2005 23:20:37 +0100, "Michal Przybylek"
<mrp@neostrada.pl> wrote:

>"A.L." <lewando_won_@kalabambuko.com> wrote:
>
>> Niestety, od autora Screamera wiem ze jest to produkt
>> niedokonczony, nie wspierany, nie aktualizowany, i w ogole porzucony.
>
>Ja zas slyszalem, ze produkt ten jest tak dobry, ze od ponad 10 lat nie
>wymaga aktualizacji. A jezeli czegos brakuje, to... Masz kod Screamer'a ?
>Masz. Masz raczki ? Masz. No to to se dorob, to czego brakuje :-)

Ja nie jestem w biznesie robienia tooli i nie placa mi za to. Prolog
jest dla mnie lepszy.

A.L.
Re: Domain Specific Modeling
#13021
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 10:53
25 lines
2181 bytes
"Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> > Jakies 5 lat temu uzywalem narzedzi, bardzo biednych wtedy, do pewnego
> > specjalistycznego programowania mikrosterownikow. Wydladalo to tak, ze
> > rysowalo sie schemat blokowy jak dany sterownik ma reagowac na sygnaly i
> > z tego generowany byl odpowiedni kod pod opdowiedni klocek. Pomimo
> > kompletnego niedopracowania tych narzedzi, bardzo je sobie cenilem.
>
> Ale ta domena programowania jest znacznie prostsza od tworzenia
> oprogramowania ogólnego.
>
> Ja jestem tradycyjnie sceptyczny co do takich technologii, bo przymiarki
> do tego już były, powstało nawet wiele ciekawych i dobrych narzędzi, ale
> jakoś pisania gołego tekstu to nie wyeliminowało.

Sporo wytwarzanego oprogramowania dzieli wspolny "pattern". Ja upatruje
szans wlasnie w znajdowaniu owych patterns i wytwarzaniu narzedzi do ich
obslugi.

Im bardziej rozszerzamy nasza dziedzine, tym mniej elementy z tej dziedziny
maja ze soba wspolnego.  Do dziedziny "wszystko" sa juz narzedzia i caly
czas ich uzywamy. Szkopul w tym, aby miec narzedzia do wezszych dziedzin.


mp
Re: Domain Specific Modeling
#13038
Author: Sektor van Skijlen
Date: Sat, 05 Nov 2005 13:08
45 lines
2928 bytes
Dnia Fri, 4 Nov 2005 22:58:13 +0100, Michal Przybylek skrobie:
> "Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> > > Wtedy nie bylo Tcl-a
> >
> > Aha. Ale byłby dobrym wyborem do takiego celu?

> Nie. I daj sobie spokoj z Tcl'em, to jeden z durniejszych jezykow jaki
> powstal ;-)

Nie pytałem ciebie, a już na pewno nie o opinię nt. tego języka jako języka
programowania. Takową wyrobię sobie sam.

> Byl juz wtedy Lisp.
> Byl wykorzystywany jako DSL.

Lisp to nie jest język dla normalnych ludzi.

> A co z tego wyszlo ? Zaprojektowanie DSL we wlasciwy sposob, jest czynnoscia
> piekielnie trudna, zas przecietny czloweik ma problemy z rozwiazywaniem
> przecietnych problemow...

No, szczególnie jeśli trzeba to robić w Lispie.

> Eh, lapka do gory, kto w ogole jest sobie w stanie
> wyobrazic w jaki sposob mozna dodac kontynuacje do jezyka, ktory ich nie
> posada ?

A cóż to za problem? Robi się funkcję z lokalnym stanem, tylko trzeba zrobić
odpowiednie opakowanie językowe, jeśli się da. W Tcl-u się da.

> W Lisp'ie takie rzeczy robiono - np. Screamer generalnie
> wykorzystuje haki podobnego typu.

> Mowiac o Screamer'ze... Wychodzi tu tez drugi problem z przeprogramowywaniem
> jezyka. Zapytaj sie AL'a dlaczego uzywa Prolog a nie Screamer w pracy :-)

Pewnie z tego samego powodu, dla któego używa Microsoft Office, a nie
OpenOffice.

-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethourhs(O)wp.pl>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Re: Domain Specific Modeling
#13039
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 14:24
17 lines
1777 bytes
"Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> > Eh, lapka do gory, kto w ogole jest sobie w stanie
> > wyobrazic w jaki sposob mozna dodac kontynuacje do jezyka, ktory ich nie
> > posada ?
>
> A cóż to za problem? Robi się funkcję z lokalnym stanem, tylko trzeba
zrobić
> odpowiednie opakowanie językowe, jeśli się da. W Tcl-u się da.

Jak ? Konkretnie.

Chce miec w Tcl'u Scheme'owy call/cc - tzn. ma to byc funkcja, ktora dostaje
lambde i aplikuje do niej biezaca kontynuacje.


mp
Re: Domain Specific Modeling
#13078
Author: Piotr Dembiński
Date: Sat, 05 Nov 2005 14:57
11 lines
1322 bytes
"Aleksander Galicki" <tretete.SKASUJ@gazeta.pl> writes:

[...]

> Czasem tez precyzuje sie, ze jakis "ekspert" bedzie dla konkretnej
> firmy, konkretnego produktu i konkretnej domeny definiowal ten
> domain language, ktory potem bedzie z powodzeniem uzywany 
> do tworzenia softu.

Ale takie podejście -- z tworzeniem domain-specific languages -- 
już w programowaniu było.
Re: Domain Specific Modeling
#13040
Author: Sektor van Skijlen
Date: Sat, 05 Nov 2005 16:51
60 lines
3476 bytes
Dnia Sat, 5 Nov 2005 15:24:01 +0100, Michal Przybylek skrobie:
> "Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> > > Eh, lapka do gory, kto w ogole jest sobie w stanie
> > > wyobrazic w jaki sposob mozna dodac kontynuacje do jezyka, ktory ich nie
> > > posada ?
> >
> > A cóż to za problem? Robi się funkcję z lokalnym stanem, tylko trzeba
> zrobić
> > odpowiednie opakowanie językowe, jeśli się da. W Tcl-u się da.

> Jak ? Konkretnie.

A wiesz, co robi 'yield' w Pythonie?

> Chce miec w Tcl'u Scheme'owy call/cc - tzn. ma to byc funkcja, ktora dostaje
> lambde i aplikuje do niej biezaca kontynuacje.

Tzn. co robi? Bo jakoś nie potrafię sobie tego wyborazić.

Oczywiście, że w samym Tcl-u nie da się tego napisać, bo i nie taka była
intencja Tcl-a, żeby wszystko pisać "w nim", tylko żeby jak najwięcej można
było wykonać za pomocą istniejącej składni języka.

Wszystko zależy od tego, do czego tak naprawdę chcemy te kontynuacje
wykorzystać. Bo np. chodzi nam o coś takiego:

proc grep {word fd} {
	forech line [lazy_read $fd] {
		if { [lsearch -glob *$word* $line] != -1 } {
			puts $line
		}
	}
}

Przy czym lazy_read to jest

proc lazy_read fd {
	set ln [gets $fd line]
	if { ln == 0 && [eof $fd] }\
		return # STOP continuation?

	yield $line
}

No to w takim przypadku zwracałoby się taki odpowiedni obiekt Tcl-owy, który
by miał zaszytą odpowiednią właściwość, że pobranie z niego następnego
elementu oznacza konieczność "wykonania kontynuacji". A yield oznaczałoby to
samo, co return, tyle że zwrócony zostałby obiekt kontynuacji.

A kontynuować można; zrobienie zrzutu środowiska danej funkcji i wszystkich
podległych nie stanowi większego problemu. Bądź co bądź jest to język
interpretowany i nie trzeba tutaj w niczym iść na skróty.


-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethourhs(O)wp.pl>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Re: Domain Specific Modeling
#13041
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 19:05
71 lines
3124 bytes
"Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> > > A cóż to za problem? Robi się funkcję z lokalnym stanem, tylko trzeba
> > > zrobić odpowiednie opakowanie językowe, jeśli się da. W Tcl-u się da.
>
> > Jak ? Konkretnie.
>
> A wiesz, co robi 'yield' w Pythonie?

Wiem.

> > Chce miec w Tcl'u Scheme'owy call/cc - tzn. ma to byc funkcja, ktora
> > dostaje lambde i aplikuje do niej biezaca kontynuacje.
>
> Tzn. co robi? Bo jakoś nie potrafię sobie tego wyborazić.

A Ty wiesz co to jest kontynuacja ?

Kontynuacja wyrazenia, to to, co zostalo do policzenia po policzeniu danego
wyrazenia.

np.:

(define cont #f)

(define (foo k)
  (set! cont k)
  (print "jestem w foo")
  (k 100) )


(+
 (begin
   (print "przed")
   1 )
 (call/cc foo)
 (begin
   (print "po")
   2 ) )

wypisze "przed" "foo" "po" i zwroci wynik 103

Po czym kazde kolejne odpalenie:

(cont n)

bedzie wypisywac "po"

i zwracac wynik (+ n 3)


Sorry, jezeli gdzies sie rypnelem w przykladzie, ale bardzo dawno nie
uzywalem Scheme... W kazdym razie intencja powinna byc jasna.

Chcemy napisac _funkcje_ "call/cc", ktora bedzie sie zachowywac we wlasnie
taki sposob jak to pokazalem wyzej.

Krotka pilka - wiesz jak to zrobic w Tcl, czy nie ?

> Oczywiście, że w samym Tcl-u nie da się tego napisać, bo i nie taka była
> intencja Tcl-a, żeby wszystko pisać "w nim", tylko żeby jak najwięcej
> można było wykonać za pomocą istniejącej składni języka.

Nie, taka intencja byla w Lisp'ie. I w Lisp'ie mozna napisac call/cc nie
majac w ogole _jakichkolwiek_ form kontynuacji.

BTW: Jezeli mamy kontynuacje, to Python'owy yield wyraza sie juz prosto -
dobre cwiczenie na zrozumienie call/cc.


mp
Re: Domain Specific Modeling
#13056
Author: Marcin 'Qrczak' Kowalczyk
Date: Sat, 05 Nov 2005 19:22
12 lines
1974 bytes
"Michal Przybylek" <mrp@neostrada.pl> writes:

> I w Lisp'ie mozna napisac call/cc nie majac w ogole _jakichkolwiek_
> form kontynuacji.

Oszukujesz: to wymaga code walkera i przetworzenia wszystkich źródeł,
które dostarczają funkcji wyższych rzędów.

-- 
   __("<         Marcin Kowalczyk
   \__/       qrczak@knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/
Re: Domain Specific Modeling
#13059
Author: Marcin 'Qrczak' Kowalczyk
Date: Sat, 05 Nov 2005 19:43
18 lines
2298 bytes
pdemb@gazeta.pl (Piotr Dembiński) writes:

>> Oszukujesz: to wymaga code walkera i przetworzenia wszystkich
>> źródeł, które dostarczają funkcji wyższych rzędów.
>
> Funkcja wyższego rzędu to taka, w celu wyznaczenia wartości której
> należy wyznaczyć wartości innych funkcji?

Tak, a przynajmniej tutaj o to mi chodziło.

Dodanie kontynuacji wymaga zmiany sposobu reprezentowania funkcji jako
obiektów. Zatem wszystkie funkcje, które operują na funkcjach, trzeba
przerobić.

-- 
   __("<         Marcin Kowalczyk
   \__/       qrczak@knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/
Re: Domain Specific Modeling
#13057
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 20:19
18 lines
1977 bytes
"Marcin 'Qrczak' Kowalczyk" <qrczak@knm.org.pl> wrote:

> > I w Lisp'ie mozna napisac call/cc nie majac w ogole _jakichkolwiek_
> > form kontynuacji.
>
> Oszukujesz: to wymaga code walkera i przetworzenia wszystkich źródeł,
> które dostarczają funkcji wyższych rzędów.

Kurde, ja wiem, ze Ty wiesz jak to zrobic :-)

A w watku chodzilo...

Twierdzilem, ze udostepnienie jezyka, ktory mozna przeprogramowac na DSL nie
jest rozwiazaniem. Takie przeprogramowanie zazwyczaj jest trudne. A czasami
cholernie trudne (patrz tez analogia o kopaniu dziury).


mp
Re: Domain Specific Modeling
#13058
Author: Piotr Dembiński
Date: Sat, 05 Nov 2005 20:27
12 lines
1760 bytes
Marcin 'Qrczak' Kowalczyk <qrczak@knm.org.pl> writes:

> "Michal Przybylek" <mrp@neostrada.pl> writes:
>
>> I w Lisp'ie mozna napisac call/cc nie majac w ogole _jakichkolwiek_
>> form kontynuacji.
>
> Oszukujesz: to wymaga code walkera i przetworzenia wszystkich
> źródeł, które dostarczają funkcji wyższych rzędów.

Funkcja wyższego rzędu to taka, w celu wyznaczenia wartości której
należy wyznaczyć wartości innych funkcji?
Re: Domain Specific Modeling
#13060
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 20:56
13 lines
1838 bytes
"Marcin 'Qrczak' Kowalczyk" <qrczak@knm.org.pl> wrote:

> Dodanie kontynuacji wymaga zmiany sposobu reprezentowania
> funkcji jako obiektów.

Nie wymaga. Zagadka - dlaczego ?

Qrczak, prosze, jezeli mozesz wytlumacz ludziom, ze to co sie wydaje, ze
jest problemem z GC przy RAII, jest tak naprawde kwestia tego, aby obiekty
mialy wlasciwy "extent".


mp
Re: Domain Specific Modeling
#13061
Author: Sektor van Skijlen
Date: Sat, 05 Nov 2005 23:02
80 lines
3854 bytes
Dnia Sat, 5 Nov 2005 20:05:19 +0100, Michal Przybylek skrobie:
> > > Chce miec w Tcl'u Scheme'owy call/cc - tzn. ma to byc funkcja, ktora
> > > dostaje lambde i aplikuje do niej biezaca kontynuacje.
> >
> > Tzn. co robi? Bo jakoś nie potrafię sobie tego wyborazić.

> A Ty wiesz co to jest kontynuacja ?

> Kontynuacja wyrazenia, to to, co zostalo do policzenia po policzeniu danego
> wyrazenia.

Chyba sam nie rozumiesz definicji, którą sam napisałeś.

Wyrażenie albo zostało policzone, albo nie zostało i jest jeszcze coś do
policzenia.

> np.:

> (define cont #f)

> (define (foo k)
>   (set! cont k)
>   (print "jestem w foo")
>   (k 100) )


> (+
>  (begin
>    (print "przed")
>    1 )
>  (call/cc foo)
>  (begin
>    (print "po")
>    2 ) )

> wypisze "przed" "foo" "po" i zwroci wynik 103

Dokładnie tak samo, jakbyś to foo po prostu wywołał.

> Po czym kazde kolejne odpalenie:

> (cont n)

Nie wiem, co ma niby robić "cont". Ani co w praktyce robi
(set! cont k). Za mocno liczysz na moją znajomość Skima.

> bedzie wypisywac "po"

> i zwracac wynik (+ n 3)

I nawet teraz nie jestem pewny, czy rzeczywiście miałeś na myśli "n+3".

> Sorry, jezeli gdzies sie rypnelem w przykladzie, ale bardzo dawno nie
> uzywalem Scheme... W kazdym razie intencja powinna byc jasna.

Taaa... pozostawmy to stwierdzenie bez komentarza.

> Chcemy napisac _funkcje_ "call/cc", ktora bedzie sie zachowywac we wlasnie
> taki sposob jak to pokazalem wyzej.

> Krotka pilka - wiesz jak to zrobic w Tcl, czy nie ?

Przykro mi, ale nie jestem w stanie zrozumieć, co ty właściwie chcesz
osiągnąć. Pokaż mi jakiś przykład, w którym rzeczywiście kontynuacja jest
wykorzystana, bo na razie to podałeś tylko przykład, w którym kontynuacja
potencjalnie mogłaby być wykorzystana.

Spróbuj wyjaśnić intencję kontynuacji bez użycia Scheme. Ewentualnie spróbuj
zastosować język, który jest jakiś bardziej normalny i dla ludzi.

Jeśli chcesz wiedzieć, czy wiem, jak zrobić - nie; nie wiem jak zrobić, przede
wszystkim dlatego, że powyższy przykład w żaden sposób nie wyjaśnia, co robi
call/cc.


-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethourhs(O)wp.pl>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Re: Domain Specific Modeling
#13062
Author: Michal Przybylek
Date: Sun, 06 Nov 2005 10:09
28 lines
2305 bytes
"Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> > A Ty wiesz co to jest kontynuacja ?
>
> > Kontynuacja wyrazenia, to to, co zostalo do policzenia po
> > policzeniu danego wyrazenia.
>
> Chyba sam nie rozumiesz definicji, którą sam napisałeś.

Sektor, to Ty nie rozumiesz co ja pisze (pozatym, to nie jest definicja,
tylko intuicyjne rozumienie, bo pojecia kontynuacji nie da sie w ogolnosci
zdefiniowac ; na tej samej zasadzie na jakiej nie da sie zdefiniowac w
ogolnosci pojecia funkcji, choc da sie zdefiniowac pojecie funkcji np. w
teorii mnogosci).

Nie Sektor, nie bede dlaej tlumaczyl pojecia kontynuacji. Wez po prostu
odpowiednia ksiazke. Ksiazka zrobi to lepiej. Dziwi mnie tylko, ze tak
ochoczo krzyczales jak prosta jest implementacja pojecia, ktorego nawet nie
posiadasz...


mp

ps.

(set! x y)

to zapisanie na zmienna x wartosci z y.
Re: Domain Specific Modeling
#13075
Author: Piotr Dembiński
Date: Sun, 06 Nov 2005 14:34
8 lines
1528 bytes
Sektor van Skijlen <ethouris@pl.wp.spamu.lubie.nie.invalid> writes:

[...]

> spróbuj zastosować język, który jest jakiś bardziej normalny 
> i dla ludzi.

Akurat Scheme jest jak najbardziej dla ludzi :>
Re: Domain Specific Modeling
#13063
Author: Piotr Dembiński
Date: Sun, 06 Nov 2005 14:36
9 lines
1680 bytes
"Michal Przybylek" <mrp@neostrada.pl> writes:

[...]

> Nie Sektor, nie bede dlaej tlumaczyl pojecia kontynuacji. 
> Wez po prostu odpowiednia ksiazke. Ksiazka zrobi to lepiej. 

Właśnie, ja bym chętnie poczytał coś o kontynuacjach i tym podobnych
'wynalazkach' w językach programowania.  Jaką pozycję  proponujesz?
Re: Domain Specific Modeling
#13068
Author: Sektor van Skijlen
Date: Sun, 06 Nov 2005 16:17
83 lines
4782 bytes
Dnia Sun, 6 Nov 2005 11:09:06 +0100, Michal Przybylek skrobie:
> "Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> > > A Ty wiesz co to jest kontynuacja ?
> >
> > > Kontynuacja wyrazenia, to to, co zostalo do policzenia po
> > > policzeniu danego wyrazenia.
> >
> > Chyba sam nie rozumiesz definicji, którą sam napisałeś.

> Sektor, to Ty nie rozumiesz co ja pisze (pozatym, to nie jest definicja,
> tylko intuicyjne rozumienie,

Jeśli tak wygląda twoje "intuicyjne rozumienie", to ty intuicji nie posiadasz.

> bo pojecia kontynuacji nie da sie w ogolnosci zdefiniowac ;

To zdefiniuj w szczególności. W jakikolwiek sposób, który wyjaśnia po co ci to
i jak możesz z tego skorzystać.

> na tej samej zasadzie na jakiej nie da sie zdefiniowac w ogolnosci pojecia
> funkcji, choc da sie zdefiniowac pojecie funkcji np. w teorii mnogosci).

Zależy o jakiej funkcji mówimy. Bo istnieje wiele jej definicji; matematyczna
to tylko jedna z nich.

> Nie Sektor, nie bede dlaej tlumaczyl pojecia kontynuacji. Wez po prostu
> odpowiednia ksiazke. Ksiazka zrobi to lepiej. Dziwi mnie tylko, ze tak
> ochoczo krzyczales jak prosta jest implementacja pojecia, ktorego nawet nie
> posiadasz...

Skoro nie potrafisz wytłumaczyć w kilku słowach, czym jest kontynuacja, to
znaczy, że sam nie do końca rozumiesz to pojęcie. Jest tak, czy nie?

To, jakobym ja nie rozumiał pojęcia kontynuacji to jest tylko twoje stanowcze
stwierdzenie, dlatego to ja się raczej dziwię, czemu się dziwisz.

Nie potrafisz, to ja przytoczę definicję kontynuacji.

In computing, a continuation is a representation of an execution point (for
example, the instruction pointer and stack frame). Many languages have
constructs that allow a programmer to obtain a pointer to a continuation, and
then to resume execution using the pointer at a later point in time. This
technique has been used in functional programming, imperative programming, and
message passing programming.

Może być?

Ponieważ w Tcl-u mogę sobie interpretować kawałek tekstu zawsze, jeśli tylko
wiem, że jest to kod w Tcl-u, więc mogę sobie go interpretować metodą, jaka mi
się spodoba. W tym również taką metodą, która zachowa mi kontekst wykonania i
będzie umiała go później przywrócić.

I co z tego, że Lisp dostarcza możliwości zrobienia tego bez dodatkowego
wsparcia? C też dostarcza.

Poza tym ciekawą sprawą jest jeszcze to, że:

Continuations are the functional expression of the GOTO statement, and the
same caveats apply. While they are a sensible option in some special cases,
use of continuations can result in code that is difficult to follow. In fact,
the esoteric programming language Unlambda includes
call-to-current-continuation as one of its features solely because of its
resistance to understanding.

Podobnie zresztą pewnie jak z COME FROM.

> ps.

> (set! x y)

> to zapisanie na zmienna x wartosci z y.

Nie żartuj - poważnie?

I pewnie oczywiście odpalenie następnie (x n) nie ma tutaj nic to rzeczy
anyway?

-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethourhs(O)wp.pl>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Re: Domain Specific Modeling
#13065
Author: Michal Przybylek
Date: Sun, 06 Nov 2005 16:33
41 lines
3433 bytes
"Piotr Dembiński" <pdemb@gazeta.pl> wrote:

> > Nie Sektor, nie bede dlaej tlumaczyl pojecia kontynuacji.
> > Wez po prostu odpowiednia ksiazke. Ksiazka zrobi to lepiej.
>
> Właśnie, ja bym chętnie poczytał coś o kontynuacjach i tym podobnych
> 'wynalazkach' w językach programowania.  Jaką pozycję  proponujesz?

Kontynuacje to nie "wynalazki".

Kontynuacje sa najnaturalniejszym sposobem myslenia o wykonywaniu sie
programow. To jest troche tak jak z liczbami zespolonymi w matematyce -
mozna sie bez nich obyc i ludzie sie obywali przez lata, ale traci sie przy
tym duzo na "regularnosci" - w pewnych miejscach pojawiaja sie jakies
zadziwiajace zwiazki i na gruncie liczb rzeczywistych kompletnie nie wiadomo
dlaczego. Dopiero wejscie w liczby zespolone daje nam pelen niezafalszowany
obraz.

Jezeli bedziesz chcial opisac semantyke jezyka z chocby tak prostymi
konstrukcjami jak "return", czy "break" w sposob bezkontynuacyjny, to
bedziesz musial robic co chwila jakis "dirty hack". Tak proste konstrukcje
przyjma zadziwiajaco skomplikowana semantyke. Zupelnie, jakbysmy sie
zabierali do opisu w niewlasciwy sposob. No i zabieramy sie w niewlasciwy
sposob - ten niewlasciwy sposob, to myslenie w kategoriach "wyniku" zamiast
w kategoriach "przeplywu obliczen". A ten przeplyw obliczen to kontynuacje.


Nie mam teraz pod reka dobrych ksiazek z tego tematu. Na pewno znajdziesz
wyczerpujace informacje w dowolnym opracowaniu nt. semantyki denotacyjnej. Z
punktu widzenia czysto programistycznego, na pewno w wiekszosci ksiazek od
Scheme (takze darmowych, poszukaj na internecie ; to sa w wiekszosci bardzo
dobre ksiazki).


Z wcieleniem pierwszoklasowych kontynuacji do jezykow programowania jest tez
sporo problemow (w szczegolnosci, pewne rzeczy przestaja byc przezroczyste
dla klienta), o czym AL juz zapewne nie wie, co, w kazdym razie, nie
przeszkadza mu sie troche pomedrkowac...


mp
Re: Domain Specific Modeling
#13071
Author: Michal Przybylek
Date: Sun, 06 Nov 2005 16:39
44 lines
2409 bytes
"Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> In computing, a continuation is a representation of an execution
> point (for example, the instruction pointer and stack frame). Many
> languages have constructs that allow a programmer to obtain
> a pointer to a continuation, and then to resume execution using
> the pointer at a later point in time. This technique has been used
> in functional programming, imperative programming, and
> message passing programming.
>
> Może być?

Nie, to jest belkot...


> I co z tego, że Lisp dostarcza możliwości zrobienia tego
> bez dodatkowego wsparcia? C też dostarcza.

Nie.

> > ps.
>
> > (set! x y)
>
> > to zapisanie na zmienna x wartosci z y.
>
> Nie żartuj - poważnie?
>
> I pewnie oczywiście odpalenie następnie (x n) nie ma tutaj nic to rzeczy
> anyway?

Bo, kurde, na zmienna przypisalem _kontynuacje_.

Jak napisze:

(set! x (lambda (n) (+ n 1)))

to tez Cie zdziwi napis:

(x 10)

?

mp
Re: Domain Specific Modeling
#13076
Author: Sektor van Skijlen
Date: Sun, 06 Nov 2005 16:43
17 lines
1995 bytes
Dnia Sun, 06 Nov 2005 15:34:54 +0100, Piotr Dembiński skrobie:
> Sektor van Skijlen <ethouris@pl.wp.spamu.lubie.nie.invalid> writes:

> [...]

> > spróbuj zastosować język, który jest jakiś bardziej normalny 
> > i dla ludzi.

> Akurat Scheme jest jak najbardziej dla ludzi :>

To jeszcze zależy z czym porównujesz.

-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethourhs(O)wp.pl>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Re: Domain Specific Modeling
#13072
Author: Michal Przybylek
Date: Sun, 06 Nov 2005 19:29
12 lines
1742 bytes
"Michal Przybylek" <mrp@neostrada.pl> wrote:

> > Może być?
>
> Nie, to jest belkot...

Dla wyjasnienia - to jest belkot w sensie definiowania kontynuacji. Ten
tekst mowi jak _moze byc_ reprezentowana kontynuacja podczas wykonywania
programu.


mp
Re: Domain Specific Modeling
#13077
Author: Piotr Dembiński
Date: Sun, 06 Nov 2005 20:42
15 lines
1777 bytes
Sektor van Skijlen <ethouris@pl.wp.spamu.lubie.nie.invalid> writes:

> Dnia Sun, 06 Nov 2005 15:34:54 +0100, Piotr Dembiński skrobie:
>> Sektor van Skijlen <ethouris@pl.wp.spamu.lubie.nie.invalid> writes:
>
>> [...]
>
>> > spróbuj zastosować język, który jest jakiś bardziej normalny 
>> > i dla ludzi.
>
>> Akurat Scheme jest jak najbardziej dla ludzi :>
>
> To jeszcze zależy z czym porównujesz.

Nie porównuję.  Napisałem że dla ludzi.
Re: Domain Specific Modeling
#13073
Author: Adam Karpierz
Date: Sun, 06 Nov 2005 22:19
25 lines
2231 bytes
Użytkownik "Michal Przybylek" <mrp@neostrada.pl> napisał:

> Nie, to jest belkot...

No tak.
Jak zwykle dla "naukowca" wyczerpujacy dowod tego belkotu :).

Panie Przybylek, tak sie sklada ze powyzszy tekst calkiem
dobrze tlumaczy czym jest kontynuacja wlasnie dla zwyklych
programistow "imperatywnych" czyli majacych we krwi pojecie
stosu, "instruction pointer" itp.

Ma Pan wybor, albo rznac dalej naukowca ze smutnym
skutkiem (nikt Pana nie zrozumie, nawet Pietaszek od Pana spie..)
albo upuscic troche "cisnienia" i tlumaczyc tak aby
"rzemieslnicy" zrozumieli.

Pan ten drugi sposob nazywa belkotem...
No coz.. Byc moze (w co watpie) skonczy Pan
jako jakis docent ale _programista_ Pan nigdy nie bedzie

Zapomnial Pam ze, mowic prosto i zrozumiale to nie slabosc,
ale sztuka.

AK
Re: Domain Specific Modeling
#13074
Author: Sektor van Skijlen
Date: Sun, 06 Nov 2005 23:24
50 lines
3100 bytes
Dnia Sun, 6 Nov 2005 17:39:27 +0100, Michal Przybylek skrobie:
> "Sektor van Skijlen" <ethouris@pl.wp.spamu.lubie.nie.invalid> wrote:

> > In computing, a continuation is a representation of an execution
> > point (for example, the instruction pointer and stack frame). Many
> > languages have constructs that allow a programmer to obtain
> > a pointer to a continuation, and then to resume execution using
> > the pointer at a later point in time. This technique has been used
> > in functional programming, imperative programming, and
> > message passing programming.
> >
> > Może być?

> Nie, to jest belkot...

To popraw baranie, zamiast się mądrzyć. Wikipedia jest dostępna dla
wszystkich. O ile oczywiście admin nie będzie miał innego zdania nt. twojej
wiedzy dotyczącej kontynuacji, niż ty sam myślisz.

> > I co z tego, że Lisp dostarcza możliwości zrobienia tego
> > bez dodatkowego wsparcia? C też dostarcza.

> Nie.

Tak. (mniej więcej tyle samo sensu ma moja odpowiedź, co twoja)

> > > ps.
> >
> > > (set! x y)
> >
> > > to zapisanie na zmienna x wartosci z y.
> >
> > Nie żartuj - poważnie?
> >
> > I pewnie oczywiście odpalenie następnie (x n) nie ma tutaj nic to rzeczy
> > anyway?

> Bo, kurde, na zmienna przypisalem _kontynuacje_.

Kontynuacje, czyli co?

Co robi call/cc z podanym argumentem? I jakie konkretnie zachowanie miałbym
uzyskać w innym języku?


-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethourhs(O)wp.pl>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Re: Domain Specific Modeling
#13022
Author: A.L.
Date: Mon, 07 Nov 2005 15:23
17 lines
1488 bytes
On Sat, 5 Nov 2005 11:53:46 +0100, "Michal Przybylek"
<mrp@neostrada.pl> wrote:

> 
>
>Sporo wytwarzanego oprogramowania dzieli wspolny "pattern". Ja upatruje
>szans wlasnie w znajdowaniu owych patterns i wytwarzaniu narzedzi do ich
>obslugi.
>
>Im bardziej rozszerzamy nasza dziedzine, tym mniej elementy z tej dziedziny
>maja ze soba wspolnego.  Do dziedziny "wszystko" sa juz narzedzia i caly
>czas ich uzywamy. Szkopul w tym, aby miec narzedzia do wezszych dziedzin.

To juz bylo. "Ruch patterns" po krotkim okresie aktywnosci zmarl na
uwiad starczy.

A.L.
Re: Domain Specific Modeling
#13023
Author: Mariusz Lotko
Date: Mon, 07 Nov 2005 20:37
30 lines
1894 bytes
A.L. wrote:

> On Sat, 5 Nov 2005 11:53:46 +0100, "Michal Przybylek"
> <mrp@neostrada.pl> wrote:
> 
>> 
>>
>>Sporo wytwarzanego oprogramowania dzieli wspolny "pattern". Ja upatruje
>>szans wlasnie w znajdowaniu owych patterns i wytwarzaniu narzedzi do ich
>>obslugi.
>>
>>Im bardziej rozszerzamy nasza dziedzine, tym mniej elementy z tej
>>dziedziny
>>maja ze soba wspolnego.  Do dziedziny "wszystko" sa juz narzedzia i caly
>>czas ich uzywamy. Szkopul w tym, aby miec narzedzia do wezszych dziedzin.
> 
> To juz bylo. "Ruch patterns" po krotkim okresie aktywnosci zmarl na
> uwiad starczy.

Chyba nie tyle zmarl, co przestal sie rozwijac. Czesc patternow weszla
do codziennego uzycia z duzym powodzeniem, lacznie z tzw. jedynie sluszna
implementacja.

Faktem jest natomiast, ze wyszukiwanie nowych patternow, to juz powoli
zajecie dla hobbystow i naukowcow bez lepszego pomyslu na nowa
publikacje ;-)

-- 
Mariusz Lotko
http://www.lotko.magma-net.pl/
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