Thread View: pl.comp.objects
46 messages
46 total messages
Started by A.L.
Thu, 03 Nov 2005 16:19
Domain Specific Modeling
Author: A.L.
Date: Thu, 03 Nov 2005 16:19
Date: Thu, 03 Nov 2005 16:19
12 lines
1036 bytes
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
Author: Aleksander Galicki
Date: Thu, 03 Nov 2005 17:14
Date: Thu, 03 Nov 2005 17:14
29 lines
2028 bytes
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
Author: radoslaw tereszczuk
Date: Thu, 03 Nov 2005 20:41
Date: Thu, 03 Nov 2005 20:41
16 lines
1548 bytes
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
Author: radoslaw tereszczuk
Date: Thu, 03 Nov 2005 20:48
Date: Thu, 03 Nov 2005 20:48
10 lines
1652 bytes
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
Author: Aleksander Galicki
Date: Fri, 04 Nov 2005 11:09
Date: Fri, 04 Nov 2005 11:09
41 lines
2938 bytes
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
Author: Michal Przybylek
Date: Fri, 04 Nov 2005 13:43
Date: Fri, 04 Nov 2005 13:43
18 lines
1748 bytes
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
Author: Sektor van Skijlen
Date: Fri, 04 Nov 2005 14:27
Date: Fri, 04 Nov 2005 14:27
29 lines
2436 bytes
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
Author: Aleksander Galicki
Date: Fri, 04 Nov 2005 14:36
Date: Fri, 04 Nov 2005 14:36
35 lines
2397 bytes
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
Author: A.L.
Date: Fri, 04 Nov 2005 16:12
Date: Fri, 04 Nov 2005 16:12
64 lines
3975 bytes
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
Author: Aleksander Galicki
Date: Fri, 04 Nov 2005 17:45
Date: Fri, 04 Nov 2005 17:45
49 lines
3566 bytes
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
Author: Sektor van Skijlen
Date: Fri, 04 Nov 2005 18:50
Date: Fri, 04 Nov 2005 18:50
37 lines
2762 bytes
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
Author: A.L.
Date: Fri, 04 Nov 2005 19:22
Date: Fri, 04 Nov 2005 19:22
29 lines
2340 bytes
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
Author: A.L.
Date: Fri, 04 Nov 2005 19:35
Date: Fri, 04 Nov 2005 19:35
46 lines
2959 bytes
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
Author: Sektor van Skijlen
Date: Fri, 04 Nov 2005 21:24
Date: Fri, 04 Nov 2005 21:24
55 lines
3508 bytes
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
Author: Michal Przybylek
Date: Fri, 04 Nov 2005 21:58
Date: Fri, 04 Nov 2005 21:58
24 lines
2032 bytes
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
Author: A.L.
Date: Fri, 04 Nov 2005 22:04
Date: Fri, 04 Nov 2005 22:04
12 lines
1395 bytes
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
Author: A.L.
Date: Fri, 04 Nov 2005 22:09
Date: Fri, 04 Nov 2005 22:09
38 lines
2272 bytes
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
Author: Michal Przybylek
Date: Fri, 04 Nov 2005 22:12
Date: Fri, 04 Nov 2005 22:12
22 lines
2012 bytes
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
Author: A.L.
Date: Fri, 04 Nov 2005 22:12
Date: Fri, 04 Nov 2005 22:12
27 lines
2018 bytes
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
Author: Michal Przybylek
Date: Fri, 04 Nov 2005 22:20
Date: Fri, 04 Nov 2005 22:20
13 lines
1728 bytes
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
Author: A.L.
Date: Fri, 04 Nov 2005 22:49
Date: Fri, 04 Nov 2005 22:49
16 lines
1656 bytes
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
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 10:53
Date: Sat, 05 Nov 2005 10:53
25 lines
2181 bytes
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
Author: Sektor van Skijlen
Date: Sat, 05 Nov 2005 13:08
Date: Sat, 05 Nov 2005 13:08
45 lines
2928 bytes
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
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 14:24
Date: Sat, 05 Nov 2005 14:24
17 lines
1777 bytes
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
Author: Piotr Dembiński
Date: Sat, 05 Nov 2005 14:57
Date: Sat, 05 Nov 2005 14:57
11 lines
1322 bytes
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
Author: Sektor van Skijlen
Date: Sat, 05 Nov 2005 16:51
Date: Sat, 05 Nov 2005 16:51
60 lines
3476 bytes
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
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 19:05
Date: Sat, 05 Nov 2005 19:05
71 lines
3124 bytes
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
Author: Marcin 'Qrczak' Kowalczyk
Date: Sat, 05 Nov 2005 19:22
Date: Sat, 05 Nov 2005 19:22
12 lines
1974 bytes
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
Author: Marcin 'Qrczak' Kowalczyk
Date: Sat, 05 Nov 2005 19:43
Date: Sat, 05 Nov 2005 19:43
18 lines
2298 bytes
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
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 20:19
Date: Sat, 05 Nov 2005 20:19
18 lines
1977 bytes
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
Author: Piotr Dembiński
Date: Sat, 05 Nov 2005 20:27
Date: Sat, 05 Nov 2005 20:27
12 lines
1760 bytes
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
Author: Michal Przybylek
Date: Sat, 05 Nov 2005 20:56
Date: Sat, 05 Nov 2005 20:56
13 lines
1838 bytes
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
Author: Sektor van Skijlen
Date: Sat, 05 Nov 2005 23:02
Date: Sat, 05 Nov 2005 23:02
80 lines
3854 bytes
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
Author: Michal Przybylek
Date: Sun, 06 Nov 2005 10:09
Date: Sun, 06 Nov 2005 10:09
28 lines
2305 bytes
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
Author: Piotr Dembiński
Date: Sun, 06 Nov 2005 14:34
Date: Sun, 06 Nov 2005 14:34
8 lines
1528 bytes
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
Author: Piotr Dembiński
Date: Sun, 06 Nov 2005 14:36
Date: Sun, 06 Nov 2005 14:36
9 lines
1680 bytes
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
Author: Sektor van Skijlen
Date: Sun, 06 Nov 2005 16:17
Date: Sun, 06 Nov 2005 16:17
83 lines
4782 bytes
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
Author: Michal Przybylek
Date: Sun, 06 Nov 2005 16:33
Date: Sun, 06 Nov 2005 16:33
41 lines
3433 bytes
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
Author: Michal Przybylek
Date: Sun, 06 Nov 2005 16:39
Date: Sun, 06 Nov 2005 16:39
44 lines
2409 bytes
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
Author: Sektor van Skijlen
Date: Sun, 06 Nov 2005 16:43
Date: Sun, 06 Nov 2005 16:43
17 lines
1995 bytes
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
Author: Michal Przybylek
Date: Sun, 06 Nov 2005 19:29
Date: Sun, 06 Nov 2005 19:29
12 lines
1742 bytes
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
Author: Piotr Dembiński
Date: Sun, 06 Nov 2005 20:42
Date: Sun, 06 Nov 2005 20:42
15 lines
1777 bytes
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
Author: Adam Karpierz
Date: Sun, 06 Nov 2005 22:19
Date: Sun, 06 Nov 2005 22:19
25 lines
2231 bytes
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
Author: Sektor van Skijlen
Date: Sun, 06 Nov 2005 23:24
Date: Sun, 06 Nov 2005 23:24
50 lines
3100 bytes
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
Author: A.L.
Date: Mon, 07 Nov 2005 15:23
Date: Mon, 07 Nov 2005 15:23
17 lines
1488 bytes
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
Author: Mariusz Lotko
Date: Mon, 07 Nov 2005 20:37
Date: Mon, 07 Nov 2005 20:37
30 lines
1894 bytes
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