Article View: pl.comp.lang.c
Article #310190Re: Coroutines w (GNU) C
From: Maciek Godek
Date: Wed, 25 Mar 2020 12:47
Date: Wed, 25 Mar 2020 12:47
62 lines
6674 bytes
6674 bytes
W dniu środa, 25 marca 2020 13:26:40 UTC+1 użytkownik (fir) napisał: > W dniu wtorek, 24 marca 2020 21:31:01 UTC+1 użytkownik Maciek Godek napisał: > > W dniu piątek, 20 marca 2020 20:56:20 UTC+1 użytkownik (fir) napisał: > > > W dniu środa, 11 marca 2020 15:00:46 UTC+1 użytkownik Mateusz Viste napisał: > > > > 2020-03-11 o 04:45 -0700, Maciek Godek napisał: > > > > > Jak lubisz, to sobie używaj. > > > > > > > > I w zasadzie na tym możnaby zakończyć ten wątek. :) > > > > > > > > My "wiemy", że C jest lepsze bo jest proste i przejrzyste bez żadnych > > > > wodotrysków przez które człowiek gubi się w tym co tak naprawdę się > > > > dzieje, a heby "wie" że C++ posiada trylion wynalazków których nie > > > > potrzeba na nowo wymyślać i dlatego jest lepszy, a rozumieć jak co > > > > działa nie ma potrzeby bo od tego są interfejsy by ukrywać detale > > > > implementacji. > > > > > > > > Oba obozy mogą się tak sprzeczać w nieskończoność... Tylko czy to ma > > > > sens? Wszak o gustach się nie dyskutuje, a cała polemika "C vs C++" > > > > rozbija się właśnie o gust (oraz poniekąd o sposób myślenia czy ogólniej > > > > podejście do życia). Tak czy siak - nikt nikogo tu nie przekona. > > > > > > > nie jest tak poniewaz ten trylion wynalazkow c++ jest poprostu glupi i 'pozwala' pisac dosyc glupi kod - kod ktory w c mozna napisac duzo madrzej > > > > > > same te 'wynalazki' c są dużo mądrzejsze > > > i robia nawet wlasnie imponujace mozna > > > pwoiedziec wrazenie (mz programowanie robi wrazenie samo w sobie, c po swojej stronie robi mozna powiedziec nawet osobne wrazenie jako sposob programowania), (choc i w c znalazly sie pewne flaws, (mysle np o wskaznikach na funkcje i na pewnych kwestiach zwiazanych ze wskaznikami w c w ogole) te flaws trudno mi ejdnak porownac do tych z c++ bo sa generalnie 'duzo trudniejsze' tj mz duzo trudniej jest powiedziec co dokladniej byloby dobre na ich miejsce) > > > > Co jest Twoim zdaniem nie tak ze wskaźnikami w C (i w szczególności ze wskaźnikami na funkcje)? > > sęk w tym ze trudo wlasnie jest dokladnie powiedziec co jest zle (jesli mowa o wskaznikach) ale moim zdaniem da sie zauwazyc ze cos tu jest zle > > jedna z rzeczy ktore chyab moge wymienic > to prawdopodobnie takie rzeczy jak: > > int*** x; > > gdzie aby zapisac cos do do celowego inta piszesz ***x = 10; > jest to prawdopodobnie zle, lepiej (prawodopodobnie) bylob by tym docelowym x'em bylo x > > int*** x; > x = 10; > (a te dodatkowe wskazniki byly by pewnie dostepne przez &x &&x i &&&x) > > jednakowoz jest to trudny temat i troszke ciezki w romowie Nie mam tego zbyt głęboko przemyślane, ale "z daleka" wygląda mi raczej na kwestię kosmetyczną. Thompson i Ritche zresztą raczej by zalecali styl deklaracji int ***x; który lepiej uwypukla symetrię pomiedzy deklaracją a użyciem (tzn. że ***x jest typu int). Pominę kwestię, że w rzeczywistym kodzie rzadko kiedy korzystam z więcej niż dwóch poziomów przekierowania. > co do tego co jest zle we wskaznikach na funkcje to jest nieco prostsze choc tez nie calkiem, jedna z rzeczy jest to ze takie wskazniki na funkcje jak w c (z takim pilnowaniem typu) sa dosyc malo uzyteczne, inna rzecz to ze np te nazywy typow uzywane w c sa po prostu zle (chyba nawet zaloze watek na comp.lang.c z pytaniem/propozycja przemyslenia jak to poprawic, tak ze jak kolega zainteresowany mozna tam rzucic okiem czy cos z tego watku wyjdzie) Rzuciłem okiem, ale nie mogę powiedzieć, żebym coś z tego zrozumiał :] W moim odczuciu wskaźniki na funkcje są najbardziej użytecznym i elastycznym środkiem abstrakcji w języku C (no i też trudno sobie wyobrazić przenośnego UNIXa bez tego mechanizmu, gdzie deskryptor plików to - może w pewnym uproszczeniu - krotka wskaźników na funkcje (read, write, ioctl)). Może pewnym kłopotem jest to, że składnia deklaracji faktycznie nie jest zachwycająco prosta - pod tym względem chyba najkorzystniej wypadają języki funkcyjne w rodzaju Haskella czy MLa (tylko że w ich przypadku to są "nie do końca wskaźniki"). Ale też nie jest to problem, z którym nie dałoby się poradzić (zwłaszcza jeżeli się umiejętnie korzysta z typedefów)
Technical Details
Message-ID:
<2ffc823d-7f45-4f5d-9b0e-6310c0ae3eab@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!news.albasani.net!news.mixmin.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<4375b52d-ba21-462a-8844-9bd1a02e9ece@googlegroups.com> <0e0786af-7b58-4070-b8cd-81f1bda1f432@googlegroups.com> <r0q9iv$23b$1@dont-email.me> <20200128233003.4bf9d9eb@mateusz> <1a207604-09fa-43f2-8d0a-e3ff51b183f4@googlegroups.com> <r0sf4i$d46$1@dont-email.me> <5e5f4069$0$519$65785112@news.neostrada.pl> <r3t1sc$r41$1@dont-email.me> <5e645e9a$0$17354$65785112@news.neostrada.pl> <r42dg3$r77$1@dont-email.me> <5e64e5a9$0$17350$65785112@news.neostrada.pl> <r42p67$o5b$1@dont-email.me> <5e6555bd$0$554$65785112@news.neostrada.pl> <r43mjb$fg2$1@dont-email.me> <5e6595ce$0$17348$65785112@news.neostrada.pl> <r46320$5hf$1@dont-email.me> <44f694e7-bd52-4b71-aa69-678f8840c27c@googlegroups.com> <r46apv$q4c$1@dont-email.me> <d42e80c7-3cd2-4ce7-a31c-5e39278bffa7@googlegroups.com> <r48ppk$aoi$1@dont-email.me> <89cfb34d-bd57-4a7a-8c94-c2dcdeb02e03@googlegroups.com> <r49vg7$fa1$1@dont-email.me> <31adf521-11e2-4e85-ae62-2e9bb7b9f0a6@googlegroups.com> <20200311150044.15019d69@mateusz> <28159a83-93d5-40d1-b647-3409548b1c98@googlegroups.com> <20a2f3c6-1f50-4824-b775-ead2e7af388c@googlegroups.com> <0881b575-25ff-4ed3-82b2-eb1d2fd0375e@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:4a14:: with SMTP id x20mr2708795qka.357.1585140448344; Wed, 25 Mar 2020 05:47:28 -0700 (PDT) X-Received: by 2002:a5b:391:: with SMTP id k17mr4788205ybp.333.1585140447978; Wed, 25 Mar 2020 05:47:27 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!news.albasani.net!news.mixmin.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Wed, 25 Mar 2020 05:47:27 -0700 (PDT) In-Reply-To: <0881b575-25ff-4ed3-82b2-eb1d2fd0375e@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=31.60.139.23; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r NNTP-Posting-Host: 31.60.139.23 References: <4375b52d-ba21-462a-8844-9bd1a02e9ece@googlegroups.com> <0e0786af-7b58-4070-b8cd-81f1bda1f432@googlegroups.com> <r0q9iv$23b$1@dont-email.me> <20200128233003.4bf9d9eb@mateusz> <1a207604-09fa-43f2-8d0a-e3ff51b183f4@googlegroups.com> <r0sf4i$d46$1@dont-email.me> <5e5f4069$0$519$65785112@news.neostrada.pl> <r3t1sc$r41$1@dont-email.me> <5e645e9a$0$17354$65785112@news.neostrada.pl> <r42dg3$r77$1@dont-email.me> <5e64e5a9$0$17350$65785112@news.neostrada.pl> <r42p67$o5b$1@dont-email.me> <5e6555bd$0$554$65785112@news.neostrada.pl> <r43mjb$fg2$1@dont-email.me> <5e6595ce$0$17348$65785112@news.neostrada.pl> <r46320$5hf$1@dont-email.me> <44f694e7-bd52-4b71-aa69-678f8840c27c@googlegroups.com> <r46apv$q4c$1@dont-email.me> <d42e80c7-3cd2-4ce7-a31c-5e39278bffa7@googlegroups.com> <r48ppk$aoi$1@dont-email.me> <89cfb34d-bd57-4a7a-8c94-c2dcdeb02e03@googlegroups.com> <r49vg7$fa1$1@dont-email.me> <31adf521-11e2-4e85-ae62-2e9bb7b9f0a6@googlegroups.com> <20200311150044.15019d69@mateusz> <28159a83-93d5-40d1-b647-3409548b1c98@googlegroups.com> <20a2f3c6-1f50-4824-b775-ead2e7af388c@googlegroups.com> <0881b575-25ff-4ed3-82b2-eb1d2fd0375e@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <2ffc823d-7f45-4f5d-9b0e-6310c0ae3eab@googlegroups.com> Subject: Re: Coroutines w (GNU) C From: Maciek Godek <godek.maciek@gmail.com> Injection-Date: Wed, 25 Mar 2020 12:47:28 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit