-
21. Data: 2012-01-17 11:06:10
Temat: Re: tcl - do czego to sie moze przydac?
Od: " " <f...@N...gazeta.pl>
M.M. <m...@N...gazeta.pl> napisał(a):
>
> Maciej Sobczak <s...@g...com> napisał(a):
>
> > natomiast Tcl moze sie przydac do tworzenia wlasnych jezykow
> > specyficznych dla jakiegos zastosowania, bo mozna w nim tworzyc nowe
> > konstrukcje jezykowe, ktore dzieki jego bardzo prostej i konsekwentnej
> > skladni nie sa odroznialne od procedur.
>
> Zabrzmialo bardzo interesujaco. Kompletnie nie znam tcl, nigdy nic nie
> czytalem o nim. Rozumiem ze skoro o tym wspominasz, to chodzi o zupelnie
> inne i lepsze dla niektorych zastosowan rozszerzenie, niz rozszerzenia
> typowe dla innych jezykow, jak np.: pisanie nowych procedur i definiowanie
> nowych typow czy klas?
>
>
no wlasnie, nie wiadomo mi wyraznie na czym polega
ta roznica, chyba tymczasowo zostawie ten napisowaty temat,
(znowu procha lyknalem i znowu nery mnie poteznie
rozbola, normalnie mam tam wielka fabryke chemiczna
(pomijnawszy nowa dziure w mym biednym zebie ))
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
22. Data: 2012-01-17 11:16:50
Temat: Re: tcl - do czego to sie moze przydac?
Od: Maciej Sobczak <s...@g...com>
On Jan 17, 10:24 am, "Stachu 'Dozzie' K."
> > Świetnie się to sprawdza przy debugowaniu!
>
> W jaki sposób?
W taki, że jak go wypiszę na ekran (lub do logu, albo w debugerze,
etc.), to widzę to, co chciałem widzieć, czyli nie suche "0x80e5a78",
ale np. "MyObjectFactory_80e5a78".
To pomaga, bo wiem, czy właśnie tego się w danym miejscu spodziewam.
Nie mówiąc o tym, że przy konwersji w drugą stronę (tzn. Tcl->C) mogę
sprawdzić, czy aby na pewno ten napis ma oczekiwaną postać.
> Ma moim zdaniem najładniejsze API do integracji z C (w
> obie strony).
Otóż to. Przynajmniej można stworzyć N całkowicie niezależnych
interpreterów w jednym procesie. A w Pythonie interpreter ma
*globalny* stan... To jest babol na poziomie podstawowym i ciągnie się
ten babol do dziś, bo nikt nie skorzystał z okazji, jaką dał Python
3.x, żeby to poprawić.
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
-
23. Data: 2012-01-17 11:22:43
Temat: Re: tcl - do czego to sie moze przydac?
Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
On 2012-01-17, Maciej Sobczak <s...@g...com> wrote:
> On Jan 17, 10:24 am, "Stachu 'Dozzie' K."
>
>> > Świetnie się to sprawdza przy debugowaniu!
>>
>> W jaki sposób?
>
> W taki, że jak go wypiszę na ekran (lub do logu, albo w debugerze,
> etc.), to widzę to, co chciałem widzieć, czyli nie suche "0x80e5a78",
> ale np. "MyObjectFactory_80e5a78".
> To pomaga, bo wiem, czy właśnie tego się w danym miejscu spodziewam.
Ah so. Faktycznie, widzę że pomaga (albo przynajmniej mogłoby).
>> Ma moim zdaniem najładniejsze API do integracji z C (w
>> obie strony).
>
> Otóż to. Przynajmniej można stworzyć N całkowicie niezależnych
> interpreterów w jednym procesie.
Pal sześć że w jednym procesie. W różnych wątkach osobne interpretery.
> A w Pythonie interpreter ma
> *globalny* stan... To jest babol na poziomie podstawowym i ciągnie się
> ten babol do dziś, bo nikt nie skorzystał z okazji, jaką dał Python
> 3.x, żeby to poprawić.
Swojego czasu szukałem, który z popularnych języków skryptowych (głównie
czwórka TRPP) *nie ma* takiego globalnego stanu interpretera. Okazało
się, że tylko Tcl.
--
Secunia non olet.
Stanislaw Klekot
-
24. Data: 2012-01-17 11:32:46
Temat: Re: tcl - do czego to sie moze przydac?
Od: Maciej Sobczak <s...@g...com>
On Jan 17, 9:15 am, " M.M." <m...@N...gazeta.pl> wrote:
> > natomiast Tcl moze sie przydac do tworzenia wlasnych jezykow
> > specyficznych dla jakiegos zastosowania, bo mozna w nim tworzyc nowe
> > konstrukcje jezykowe, ktore dzieki jego bardzo prostej i konsekwentnej
> > skladni nie sa odroznialne od procedur.
>
> Zabrzmialo bardzo interesujaco. Kompletnie nie znam tcl, nigdy nic nie
> czytalem o nim. Rozumiem ze skoro o tym wspominasz, to chodzi o zupelnie
> inne i lepsze dla niektorych zastosowan rozszerzenie, niz rozszerzenia
> typowe dla innych jezykow, jak np.: pisanie nowych procedur i definiowanie
> nowych typow czy klas?
Chodzi o to, że w Tclu konstrukcje języka i procedury użytkownika
wyglądają tak samo.
Np. nie ma w Tclu pętli while, która zgodnie z resztą gramatyki
mogłaby wyglądać np. tak:
while {warunek} {
cośtamcośtam
}
Nie ma, ale to nic, bo można zdefiniować procedurę while z dwoma
argumentami, którą dokładnie tak można użyć. I nie dość, że nie różni
się to wizualnie od reszty języka (if, for, itd.), ale nawet z punktu
widzenia interpretera się nie różni, bo interpreter traktuje wszystkie
takie konstrukcje tak samo.
A może chciałbyś takie coś:
repeat N {
cośtamcośtam
}
Nie ma problemu - znowy procedura z dwoma parametrami.
A może takie coś:
loop_forever {
cośtamcośtam
}
Jeszcze prościej, bo to jest procedura z jednym parametrem. Itd.
W ten sposób można stworzyć język według własnych potrzeb.
To powyżej to konstrukcje imperatywne, ale to nawet nie jest
największa zaleta Tcla.
Zaletę takich rozszerzeń widać wtedy, gdy stworzy się w ten sposób
język opisu danych - od plików konfiguracyjnych po powiązania logiczne
czy co tam się chce.
Wtedy można plik z danymi po prostu *wykonać* w programie a nie np.
obrywać sobie rękawy przy parsowaniu XMLa czy jeszcze czegoś.
Niemniej - tak jak już napisałem, to nie jest język do uniwersalnego
uwielbiania.
Do uniwersalnego uwielbiania jest Python. Um-cyk-um-cyk... ;-)
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
-
25. Data: 2012-01-17 11:38:12
Temat: Re: tcl - do czego to sie moze przydac?
Od: Maciej Sobczak <s...@g...com>
On Jan 17, 12:32 pm, Maciej Sobczak <s...@g...com> wrote:
> Np. nie ma w Tclu pętli while, która zgodnie z resztą gramatyki
> mogłaby wyglądać np. tak:
>
> while {warunek} {
> cośtamcośtam
> }
Hehe. Coś mnie tknęło i sprawdziłem. Jest taka konstrukcja.
Pomyliłem się. I co? I nic, bo właściwie to mogłoby jej nie być... :-)
Moja pomyłka wynika z faktu, że niestety od pewnego czasu nie używam
Tcla.
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
-
26. Data: 2012-01-17 12:44:24
Temat: Re: tcl - do czego to sie moze przydac?
Od: " " <f...@N...gazeta.pl>
przypomina mi siw mw w tym momencie
pewno stare spojrzenie na c:
chodzi o rozroznienie miedzy programowaniem
przy pomocy komend jezyka/slow kluczowych
(jak w basicu) i procedur api (jak w c)
za dawnych czasow bylem przekonany ze programuje
sie przy pomocy slow kluczowych i programy
sa po prostu wielkimi konglomeratami lini,
(i ze ew z mocy slow kluczowych biera sie ew
charakter czy mozliwosci jezyka )
w c slow kluczowych jest piec na krzyz i koduje
sie przy pomocy procedur wiec byla to masakryczna
odmiana
takie jezyki jak BASIC mz wlasnie jednak
powinno robic sie przy pomocy slow kluczowych
i ew w sprężalnosci tych slow mozna duszukiwac
sie czegos fajnego - acz w basicu powinny byc
one raczej predefiniowane, ale za to ew
predefiniowane pod poszczegolne domeny
zastosowan (o tyle python nie wyczerpywal by
tej domeny zastosowan bo nie ma on zdaje sie
specjalnych setow slow kluczowych pod
poszczegolne dziedziny )
z kolei cos takiego jak ew tcl czyli jezyk
z mozliwoscia definieowania swoich wlasnych
komend mozna by okreslic mianem makrointerpretatora
i jest to jeszcze cos innego - nie mam teraz
raczej jednak kilku dni na studiowanie rozwleklych
tutoriali totez nie umiem ocenic jak elastyczny
jest ten tcl i co wogole z tego na dluzsza mete
wynika (zainteresuje sie tym pewnie z czasem
ale w luzniejszej perspektywie)
(o samych jezykach funkcyjnych niewiele wiem ale
raczej nie pociagaja mnie specjalnie - juz predzej
asm)
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
27. Data: 2012-01-17 13:42:14
Temat: Re: tcl - do czego to sie moze przydac?
Od: " fir kenobi" <f...@N...gazeta.pl>
> w c slow kluczowych jest piec na krzyz
przy czym tak naprawde kluczowe sa dwa if i for,
przy czym moje namysly wykazaly ze oba mozna zastapic
operatorami, np
//if
contition : body;
// loop
condition :: body
a<0 : a=-a;
int i=0;
i<100 :: tab[i++]=0;
nieco ryzykowne, ale jako dodatkowy trick dla skrocenia zapisow
kto wie
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
28. Data: 2012-01-17 14:50:24
Temat: Re: tcl - do czego to sie moze przydac?
Od: " " <f...@N...gazeta.pl>
fir kenobi <f...@N...gazeta.pl> napisał(a):
>
> > w c slow kluczowych jest piec na krzyz
>
> przy czym tak naprawde kluczowe sa dwa if i for,
> przy czym moje namysly wykazaly ze oba mozna zastapic
> operatorami, np
>
> //if
> contition : body;
>
> // loop
> condition :: body
>
> a<0 : a=-a;
>
> int i=0;
> i<100 :: tab[i++]=0;
>
> nieco ryzykowne, ale jako dodatkowy trick dla skrocenia zapisow
> kto wie
>
>
przy czym zalezaloby mi tez na eliminowaniu nawiasow
klamorowych od ifow i forow, jesli mialoby nie byc
nawiasow to powinien byc albo spojnik albo kropka
jest w c spojnik - przecinek, do tego jest on o ile pamiatam
tak zrobiony ze nadaje sie do kombinowania nawet wyrazen
zwracajacych wynik pod ifa (o ile pamiatam to brany jest
skrajnie prawy skladnik) czyli cos takiego by wtedy ew moglo
dzialac
i++, i<100 :: tab2[i]=tab1[i], tab3[i]=0;
ale nie wiem np czy warunek zeby warunkiem dla loopa
byl zawsze skrajny skladnik z prawej w bloku condition
nie jest ograniczajace
pozatym przydalby sie tez drugi spojnik dla wyrazania
rownoleglej natury linijek :/
kwestie te podlegaja rozwazaniu bo dokladnie nie wiem co
i jak ale takie pomysly sie zarysowywują
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
29. Data: 2012-01-17 17:29:53
Temat: Re: tcl - do czego to sie moze przydac?
Od: "Waldek M." <w...@l...localdomain>
Dnia Tue, 17 Jan 2012 01:29:53 -0800 (PST), Roman W napisał(a):
>> Podobnie jak AWK jest dla ludzi ktory lubia AWK :)
>
> Sa tacy? ;-)
Sprawdź na comp.lang.awk i spytaj jeszcze raz ;)
Pozdrawiam,
Waldek
-
30. Data: 2012-01-17 18:48:18
Temat: Re: tcl - do czego to sie moze przydac?
Od: Andrzej Jarzabek <a...@g...com>
On 17/01/2012 11:32, Maciej Sobczak wrote:
>
> Chodzi o to, że w Tclu konstrukcje języka i procedury użytkownika
> wyglądają tak samo.
> Np. nie ma w Tclu pętli while, która zgodnie z resztą gramatyki
> mogłaby wyglądać np. tak:
>
> while {warunek} {
> cośtamcośtam
> }
[...]
Właśnie ten ficzer powodował, że w firmie, gdzie używałem tcl-a był on
źródłem nieproporcjonalnie wielu błędów, w tym produkcyjnych - dowolny
błąd typu literówka w nazwie procedury lub zmiennej, zła ilość
argumentów, niedopasowane cudzysłowy itd. mogły być wykryte dopiero przy
próbie wykonania danej linijki kodu. For extra fun: zakomentowane linie
zawierające niesparowane znaki { i }.