Portál AbcLinuxu, 30. dubna 2025 10:22

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
1.7.2008 14:30 CEST
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Odpovědět | Sbalit | Link | Blokovat | Admin
No, pokud bych mel nejakou jednodussi omezenou mnozinu operaci a funkci, asi bych si radsi napsal vlastne parser. Ono to zas takovy tezky nebude, prakticky by to mohlo byt jenom par pravidel.

Pokud bys uzivatele dokazal presvedcit na postfixovou nebo prefixovou notaci, tak jsi za vodou uplne.
cezz avatar 1.7.2008 14:44 cezz | skóre: 24 | blog: dm6
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
No pokusam sa o nieco velmi podobne ako zvlada google. Cize uzivatel nieco zada a ked ja uznam, ze je to vzorec, pokusim sa ho vypocitat. (a zobrazim mu riesenie prikladu popri dalsich vysledkoch, ktore zas vratia ine moduly)

Cize urcite neviem uzivatela prinutit k nejakej notacii, maximalne si ju viem ja nejako pracne naformatovat. Dokonca ako som spominal, riesim aj to, ze u nas sa pouziva desatinna ciarka, kdezto inde bodka. (snazim sa prisposobit)

Ide mi o to, ze nakolko je bezpecne si nieco take parsovat "rucne". Hlavne co sa tyka obmedzenia na cas vypoctu, spotrebovanu ram a oddelenie od premennych celeho programu (o pravach, ktore ma beziaci program nehovoriac).
Computers are not intelligent. They only think they are.
1.7.2008 15:37 rajcze | skóre: 6 | blog: rajcze | kus od Brna
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Netřeba přesvědčovat na pre/postfixovou notaci, infix se dá velmi triviálním způsobem na postfix převést. A vyhodnotit výraz v postfixu už je hračka.
Rules of Optimization: Rule 1: Don't do it. Rule 2 (for experts only): Don't do it yet.
thingie avatar 1.7.2008 14:41 thingie | skóre: 8
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Odpovědět | Sbalit | Link | Blokovat | Admin
http://haskell.org/haskellwiki/Safely_running_untrusted_Haskell_code

Ani tam to není tak lehké, ač by člověk řekl, že stačí kontrolovat typy a bude.
Růžové lži.
1.7.2008 15:00 spang
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Odpovědět | Sbalit | Link | Blokovat | Admin
http://www.google.com/search?q=python+safe+eval
Sjå! Den gamle Buddha-knusern!
cezz avatar 1.7.2008 15:31 cezz | skóre: 24 | blog: dm6
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
To prave vedie k tomu safe evalu, ktory AFAIK uz nejaky ten cas nie je udrziavany a tazko povedat, nakolko je safe..
Computers are not intelligent. They only think they are.
1.7.2008 15:57 diverman | skóre: 32 | blog: život s tučňáčkem
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Odpovědět | Sbalit | Link | Blokovat | Admin
python-ply
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
1.7.2008 15:57 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Odpovědět | Sbalit | Link | Blokovat | Admin
Napsal bych si vlastní parser. Pokud jsou to jen matematické výrazy, je to LL(1) a stačí rekurzivní sestup (google určitě pro tyhle pojmy něco najde). Pokud to bude korektní, vyhodí to výsledek, pokud ne, řekne, že je to špatně.
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
1.7.2008 20:17 JS
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Presne tak, pyparsing to resi.
cezz avatar 1.7.2008 21:29 cezz | skóre: 24 | blog: dm6
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Tiez velmi zaujimava alternativa..
Computers are not intelligent. They only think they are.
1.7.2008 16:00 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Odpovědět | Sbalit | Link | Blokovat | Admin
k overeni spravnosti vyrazu to bude chtit neco vic nez regularni vyrazy... takze urcite to bude chtit napsat nebo vygenerovat nejaky parser. jinak pokud chcete mit absolutni jistotu, ze se vyraz nevyhodnoti na neco nechteneho, je nejlepsi napsat si vlastni evaluator.
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
1.7.2008 19:13 Marek 'marx' Grác | skóre: 21 | blog: Paralelný blog | Brno / Bratislava
Rozbalit Rozbalit vše Re: Bezpečný eval matematického vzorca (python)
Odpovědět | Sbalit | Link | Blokovat | Admin
Nešlo by to poslať ako vstup do bc ?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.