Article View: pl.comp.lang.c
Article #247160Re: ile czasu trzeba aby sie nauczyc c++?
From: (fir)
Date: Fri, 21 Apr 2017 21:51
Date: Fri, 21 Apr 2017 21:51
54 lines
3795 bytes
3795 bytes
W dniu piątek, 21 kwietnia 2017 23:29:23 UTC+2 użytkownik godek....@gmail.com napisał: > W dniu piątek, 21 kwietnia 2017 23:10:00 UTC+2 użytkownik (fir) napisał: > > > to jak puscis to w petli by to dzialalo jak najlepiej? > > (ciekawe pytanie, ktos ma chec odpowiedziec?) > > Jeden pomysł to zrobić interpreter dla odwrotnej notacji polskiej, > tzn. jak masz wyrażenie zapisane jako > > 2 3 + 4 5 * / > > to ono jest interpretowane jako > > ((2 + 3) / (4 * 5)) > > W przypadku wyrażeń Lispa byłoby to szczególnie banalne, bo konwersja > miałaby jakąś taką postać > > (define (rpn expression) > (match expression > ((operator . operands) > `(,@(append-map rpn operands) ,operator)) > (_ > `(,expression)))) > > np. > > (rpn '(/ (+ 2 3) (* 4 5))) > > daje w wyniku > > (2 3 + 4 5 * /) > > Interpreter działa w ten sposób, że wczytanie liczby odkłada na stos, > a wczytanie operatora zdejmuje odpowiednią liczbę argumentów > ze stosu i wykonuje na nich operacje > > (w jakimś sensie można patrzeć na to jako na swego rodzaju > asembler, i na tym pomyśle opiera się język Forth) > > Ja swoją konwersję do CPSów robię rekurencyjnie (i to nieogonowo), > więc jeżeli chceć to zastąpić pętlą, to raczej taką ze stosem: > > https://gist.github.com/panicz/4b61cb44ffdbe19613e19f4f2579245f ten przyklad wyglada dosyc ladnie, ale ciagle lispa powiedzialbym jak patrze na kod rozumiem powiedzialbym 'polowicznie' (co nie jest dziwne bo sie go nie uczylem) a przetlumaczenie na asma takiego czegos x = (3*a+(c-2)/d+f)*g (gdzie to co jest litera monza uznac za rejestr, tylko jednoliterowe nazwy rejestrow, a to co jest digitem mozna uznac za inta) duzo by w lispie zajelo?, w c to mi zajelo o ile mgliscie pamietam dobrych kilkaset linijek (co prawda zle to napisalem) - jesli by ten lisp naprawde robil to sprawniej niz c to mozna uznac za pewna wartosc
Technical Details
Message-ID:
<d91506d3-d2e3-4d02-b1a0-99e3e334093c@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!c26no247672itd.0!news-out.google.com!v18ni360ita.0!nntp.google.com!e132no1068034ite.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<451e90e7$0$17965$f69f905@mamut2.aster.pl> <b1e91861-9e4f-4b2e-be9f-b9a47ca8d719@googlegroups.com> <58e14e55$0$5152$65785112@news.neostrada.pl> <50630553-5585-4c79-b204-10decc20648f@googlegroups.com> <93ccf1ff-6c50-4308-ba33-d7e593ffaeb0@googlegroups.com> <almarsoft.2018019733568017445@news.v.pl> <16c707cc-51c1-49fe-8d99-28670469a954@googlegroups.com> <780c3784-e9ed-44e6-b983-ba04d778a9c4@googlegroups.com> <6eb4f9c1-4016-43fc-8003-1484e904aa9b@googlegroups.com> <5af86780-9446-45cd-8776-b83b3f14296e@googlegroups.com> <64803b60-0828-4ab8-b089-d136c85e7b97@googlegroups.com> <0dd3c685-151a-4cea-b4c5-33131f9af96a@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.99.113.66 with SMTP id b2mr6294000pgn.20.1492811489092; Fri, 21 Apr 2017 14:51:29 -0700 (PDT) X-Received: by 10.157.60.148 with SMTP id z20mr216940otc.3.1492811489048; Fri, 21 Apr 2017 14:51:29 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!c26no247672itd.0!news-out.google.com!v18ni360ita.0!nntp.google.com!e132no1068034ite.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Fri, 21 Apr 2017 14:51:28 -0700 (PDT) In-Reply-To: <0dd3c685-151a-4cea-b4c5-33131f9af96a@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.189; posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN NNTP-Posting-Host: 5.172.255.189 References: <451e90e7$0$17965$f69f905@mamut2.aster.pl> <b1e91861-9e4f-4b2e-be9f-b9a47ca8d719@googlegroups.com> <58e14e55$0$5152$65785112@news.neostrada.pl> <50630553-5585-4c79-b204-10decc20648f@googlegroups.com> <93ccf1ff-6c50-4308-ba33-d7e593ffaeb0@googlegroups.com> <almarsoft.2018019733568017445@news.v.pl> <16c707cc-51c1-49fe-8d99-28670469a954@googlegroups.com> <780c3784-e9ed-44e6-b983-ba04d778a9c4@googlegroups.com> <6eb4f9c1-4016-43fc-8003-1484e904aa9b@googlegroups.com> <5af86780-9446-45cd-8776-b83b3f14296e@googlegroups.com> <64803b60-0828-4ab8-b089-d136c85e7b97@googlegroups.com> <0dd3c685-151a-4cea-b4c5-33131f9af96a@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <d91506d3-d2e3-4d02-b1a0-99e3e334093c@googlegroups.com> Subject: Re: ile czasu trzeba aby sie nauczyc c++? From: "(fir)" <profesor.fir@gmail.com> Injection-Date: Fri, 21 Apr 2017 21:51:29 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit