eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingLHS czy RHS?Re: LHS czy RHS?
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: "Wojciech \"Spook\" Sura" <s...@s...please.op.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: LHS czy RHS?
    Date: Tue, 24 Aug 2010 08:56:33 +0200
    Organization: medi.com
    Lines: 84
    Message-ID: <o...@l...medicom.local>
    References: <op.vhwbez1n8x7o78@notebook> <i4u76v$snk$1@inews.gazeta.pl>
    NNTP-Posting-Host: 202.58.akron.net.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 1282632994 29158 86.111.202.58 (24 Aug 2010 06:56:34 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Tue, 24 Aug 2010 06:56:34 +0000 (UTC)
    X-User: spoko_ws
    User-Agent: Opera Mail/10.61 (Win32)
    Xref: news-archive.icm.edu.pl pl.comp.programming:186675
    [ ukryj nagłówki ]

    > Chyba czegoś nie rozumiem.
    > Skoro symbol ":=" określa miejsce podziału na część lewo i prawostronną,
    > to w czym problem?

    Chciałbym potraktować := jako operator. Do tej pory interpretowałem
    wyrażenie warunkowo - jeśli występował w nim ":=", interpreter działał w
    innym trybie. Teraz chciałbym to uogólnić (być może wprowadzając więcej
    operatorów wyższego poziomu), więc podczas przetwarzania od lewej do
    prawej nie jestem w stanie stwierdzić, co jest lewo-, a co - prawostronne.

    Wstępny pomysł jest taki, by wprowadzić dodatkowy poziom abstrakcji -
    skoro := jest operatorem działającym na wyrażeniach, myślę o
    zaprojektowaniu obliczeń na całych wyrażeniach. Wówczas wejściowe
    wyrażenie kompilowane byłoby do meta-ONP, zbudowanej z wyrażeń i
    operatorów wyrażeniowych. Po przetworzeniu meta-ONP interpreter
    oczekiwałby na stosie wyrażeń pojedynczego wyrażenia będącego wynikiem
    meta-obliczeń, które z kolei zostałoby obliczone już normalnie.

    Coś pokroju:

    f(x,y):=x+y przetworzone byłoby na:

    wyrażenie(f(x,y)) wyrażenie(x+y) operator-wyrażeniowy(:=)

    To obliczone zostałoby do

    wyrażenie(<Informacja o efekcie działania operatora :=>)

    Z kolei

    2+2*2 przetworzone byłoby na:

    wyrażenie(2+2*2)

    Jest to stała z punktu widzenia obliczeń na wyrażeniach, więc nie trzeba
    już nic robić, następnie obliczone byłoby samo wyrażenie do:

    wyrażenie(6)

    Trochę głośno myślę, ale być może jest to sensowne rozwiązanie?
    Wielokrotne obliczanie wyrażeń straciłoby trochę na wydajności (najpierw
    musiałoby zostać obliczone meta-wyrażenie), ale byłby to czynnik liniowy -
    jeśli nie stały, więc nie jest też aż tak źle.

    Jest w miarę jasne to, co napisałem?

    > Pozdrawiam,
    > - Bastek -

    Pozdrawiam -- Spook.

    --
    Używam klienta poczty Opera Mail: http://www.opera.com/mail/

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: