-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Wojciech \"Spook\" Sura" <spook"mad@hatter"op.pl>
Newsgroups: pl.comp.programming
Subject: Re: LHS czy RHS?
Date: Wed, 25 Aug 2010 19:38:19 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 150
Message-ID: <op.vhz8l5kj8x7o78@notebook>
References: <op.vhwbez1n8x7o78@notebook> <i4u76v$snk$1@inews.gazeta.pl>
<o...@l...medicom.local>
<6...@g...googlegroups.com>
<op.vhyh8zaq8x7o78@notebook>
<2...@p...null.onet.pl.invalid>
<o...@l...medicom.local>
<4...@x...googlegroups.com>
NNTP-Posting-Host: chello089079244223.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2; format=flowed; delsp=yes
Content-Transfer-Encoding: Quoted-Printable
X-Trace: inews.gazeta.pl 1282757893 16528 89.79.244.223 (25 Aug 2010 17:38:13 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Wed, 25 Aug 2010 17:38:13 +0000 (UTC)
X-User: spoko_ws
X-Antivirus: avast! (VPS 100825-0, 2010-08-25), Outbound message
X-Antivirus-Status: Clean
User-Agent: Opera Mail/10.61 (Win32)
Xref: news-archive.icm.edu.pl pl.comp.programming:186714
[ ukryj nagłówki ]Dnia 25-08-2010 o 18:05:15 Marcin 'Qrczak' Kowalczyk <q...@k...org.pl>
napisał(a):
> Mimo wszystko porównałbym to z interpretacją drzewka. Może się okazać,
> że gra jest niewarta świeczki.
Zastanawiałem się nad tym - złożoność obu algorytmów jest praktycznie taka
sama, więc w grę wchodzą głównie szczegóły implementacyjne.
Po pierwsze, nie wystarczy samo drzewo wyrażenia. Wyrażenie f(x,y):=x+y
zostanie rozbite na drzewo, po lewej stronie którego będzie podwieszona
funkcja f(, jej parametry, przecinek składający je w listę i nawias
domykający. Jeśli zdecyduję się na interpretowanie tak skonstruowanego
drzewa, będzie mnie czekać dużo pracy - stwierdzenie, czy lewa gałąź jest
poprawna, zdecydowanie o tym, czy dodawana jest funkcja czy zmienna,
odnalezienie parametrów i wyszukanie ich w prawym poddrzewie i tak dalej.
To będzie na pewno wolne.
Oczywiście mogę wykonać te operacje przed procesem interpretacji, ale
wówczas musiałbym zastanowić się nad specjalnym węzłem drzewa
przechowującym prekompilowane informacje o prototypie funkcji: jej nazwie
oraz liczbie i nazwach jej parametrów. W konsekwencji pojawiłby się
kolejny byt - nie będący ani operatorem ani funkcją ani - w zasadzie -
obiektem liczbowym, dla którego musiałbym przygotować odrębny algorytm
przetwarzania. Zupełnie subiektywnie takie rozwiązanie nie podoba mi się o
tyle, że do drzewa, które służy do zapisu pewnego zestawu operacji niejako
na siłę wstrzyknięty zostanie byt, który znajdzie się tam tylko po to, by
zachować drzewiastą strukturę podczas przetwarzania.
Zaistnienie maszyny wirtualnej wraz z odpowiednim językiem nie budzi już
we mnie sprzeciwów - maszyna jest z założenia wysokopoziomowa, więc
swobodnie mogę dodać jej rozkaz dodający funkcję, zawierający szczegółowe
informacje na jej temat - łącznie ze skompilowanym do zestawu rozkazów
wyrażeniem. Polecenie:
f(x,y):=x+y
Skompilowane zostałoby do następującego pseudo-rozkazu:
ADDFN(
f,
2,
(PUSH PAR1,
PUSH PAR2,
ADD)
);
Kolejnym argumentem przemawiającym za maszyną wirtualną jest prostota jej
implementacji - wykonywanie rozkazu sprowadziłoby się do iteracyjnego
przetworzenia dużej instrukcji switch(), implementowanej wewnętrznie
zazwyczaj jako seria instrukcji goto, które są stosunkowo szybkie. Mniej
danych przechowywanych byłoby również na stosie. Podczas przetwarzania
operacji 2+2*2 na stosie znalazłaby się pojedyncza ramka z informacjami o
pojedynczym wywołaniu operacji przetwarzającej węzeł, zaś w przypadku
maszyny wirtualnej stos (nota bene siedzący w stercie) przechowywałby na
raz tylko dwie liczby - argumenty i pośrednie wyniki obliczeń. Oczywiście
można zaimplementować wersję algorytmu przetwarzającego drzewo bez użycia
rekurencji, ale wówczas trzeba byłoby ją jakoś zasymulować, co
pociągnęłoby za sobą implementację kolejnego stosu.
Nie ukrywam, że nie robiłem żadnych zaawansowanych analiz, powyższe
argumenty stanowią tylko moje przemyślenia i refleksje na temat obu
algorytmów. Bardziej podoba mi się ten z maszyną wirtualną, niemniej nie
upieram się przy nim, ale z drugiej strony chciałbym usłyszeć jakąkolwiek
argumentację przemawiającą za algorytmem przetwarzającym drzewo.
Pozdrawiam -- Spook.
--
! ._______. Warning: Lucida Console sig! //) !
! || spk || www.spook.freshsite.pl / _ """*!
! ||_____|| spook at op.pl / ' | ""!
! | ___ | tlen: spoko_ws gg:1290136 /. __/"\ '!
! |_|[]_|_| May the SOURCE be with you! \/) \ !
Następne wpisy z tego wątku
- 25.08.10 17:56 Jacek Czerwinski
- 25.08.10 20:48 Marcin 'Qrczak' Kowalczyk
- 25.08.10 21:00 Wojciech Muła
- 26.08.10 07:44 Krzysiek Kowaliczek
Najnowsze wątki z tej grupy
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-08-06 Gdynia => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-08-06 Białystok => Inżynier oprogramowania .Net <=
- 2025-08-06 "[...] sejmowe wystąpienie posłanki Klaudii Jachiry, która zakończyła je słowami ,,Sława Ukrainie"."
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Panuje się 181 159,42 zł./mies. na posła w 2026r.
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Czy cos fi przechodzi przez trafo separujące?
- 2025-08-05 kajaki i promile
- 2025-08-05 Re: Tesla jest bezpieczna, wczoraj spaliła się doszczętnie na Ursynowie i nikomu się nic nie stało
- 2025-08-05 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-08-05 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-05 B2B i książka przychodów i rozchodów
- 2025-08-04 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML