タグ

2008年8月14日のブックマーク (10件)

  • DOBON.NET .NET Tips - 文字列の計算式の計算結果を取得する

    文字列の計算式の計算結果を取得するここでは、evalのように、例えば"(1+6)*5/(7-4)"のような計算式を表す文字列から、その計算結果を取得する方法を紹介します。 サードパーティーのライブラリを使用するC#やVB.NETには、evalやそれに相当する機能がありません。よって、自分で計算式を解析するコードを書くか、サードパーティーのライブラリを利用するか、あるいは何らかの工夫するかといった方法しかありません。 もしサードパーティーのライブラリを利用できるのであれば、それが一番良いと思います。以下に無料で利用できるライブラリを幾つか紹介します。 NCalc - Mathematical Expressions Evaluator for .NET ANTLRというパーサジェネレータを使用しているようです。C# EvalもANTLRを使用しているようです。この解析方法は、State of

    DOBON.NET .NET Tips - 文字列の計算式の計算結果を取得する
  • http://web.tuat.ac.jp/~tuatmcc/contents/monthly/200206/nuki.xml

    drumsco
    drumsco 2008/08/14
  • JavaScript で構文解析: Days on the Moon

    C++ の特徴のひとつである演算子オーバーロード、その粋を極めたのが Boost Lambda (無名関数) と Boost Spirit (構文解析) ではないかと思っています。JavaScript では無名関数が使えるので Lambda に関しては間に合っているとも言えますが、Spirit はそうも行きません。JavaScript 2 で演算子オーバーロードがサポートされるのならチャレンジしてみようかななどと思ってそれきりになっていました。 しかし、一部でパーサブームが起こっているというのを受け、Perl 6 Rules をつらつらと眺めているうち、正規表現のメタ文字を使えば文法定義をきれいに書けるのではと思い至りました。そこで実際に JavaScript でパーサジェネレータを作り、Spirit にあやかって Gin (ジン) と名づけてみました。 文法定義 正規表現リテラルを使うこ

  • IT戦記 - JavaScript で数式パーサを書いてみた。

    背景 いままで、ちゃんとパーサというものを書いたことがなかったので勉強のためにアレコレ考えながらやってみようと思って、簡単な数式を木にするパーサを書いてみようと思ったのです>< 今回作るパーサの仕様 パースする数式の演算子は二項演算子 + - * / と単項演算子 + - だけ。 括弧とかは使わない。 演算の優先順位は * / のほうが + - より高い。つまり、 1 + 1 * 1 は 1 + (1 * 1) 単項演算子は二項演算子より優先順位が高い。つまり、 - 1 + 1 は (-1) + 1 で、作ってみた! ソースコード filter 関数とか使ってるので、 Firefox only です。 var parse = function(source) { var tokens = source.match(/[-+*/]|[^-+*/\s]+|\s+/g).filter(/^[^\

    IT戦記 - JavaScript で数式パーサを書いてみた。
  • exprtree.cgi - 計算式構文解析サービス / ReFITS Lab

  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    drumsco
    drumsco 2008/08/14
    数式解析
  • Java言語演習

    今回の変更点 (構文解析器の生成した)構文の構造に対応する木構造のデータを構文解析木(parse tree)または単に構文木という。前回作った電卓プログラムを改造し、構文木を生成し、それを解釈し実行するような構成にする。 今回のプログラムは、表面的には、変更が無い。しかし、内部構成を大きく変化させることにより、将来の拡張が非常に容易になる。プログラム設計の観点からは、重要なバージョンアップである。 今回のプログラムは、大きく分けると、次の3つの部分から構成される。 構文解析木のデータ構造の定義 構文解析器 評価器(構文解析木を解釈し、処理を実行する) 構文解析木 Java言語では、構造を持ったデータを、クラスによって表現する。構文木は次のように定義する。 abstract class ParseTree { } final class ParseTreeNumeric extends Pa

    drumsco
    drumsco 2008/08/14
    数式解析について
  • Java文字列内の式の解釈/演算クラス(Hishidama's Java-Eval class)

    S-JIS[2006-05-30/2008-11-03] 変更履歴 四則演算実行クラス こちらへ移転しました。 メールの送信先:ひしだま

    drumsco
    drumsco 2008/08/14
    数式解析と演算実行ライブラリ。
  • Joel on Software - ゲリラ的雇用面接のすすめ

    Joel Spolsky ジョエル・スポルスキ 翻訳: 松村 弘典 2000-03-23 Fog Creek Softwareでは適切にスタッフを採用する事が必須である。我々の業界では対象となる人々を3つのタイプに分類する事が出来る。一方には 未洗のイモ とでも呼ぶべき、この業種に従事するのに基的なスキルさえも持ち合わせていない集団がいる。これらの人たちは履歴書を注意深く確認して2,3の簡単な質問をする事で比較的容易に除外する事が出来る。対極には スーパースター と呼ばれる、パーム上で動くLispコンパイラを週末の暇つぶしにアセンブリ言語で書いてしまうような人たちがいる。これらの中間にあたるのが大多数の「応募者」で、何かしらやってくれるのではないかと思わせる人たちである。ここで紹介する幾つかのトリックはこれら一般的な応募者とスーパースターとの違いを見極めるためのものであり、Fog Cre

  • Sens Colonial Beach | LUCKBAG Group

    平素よりサンス コロニアルビーチをご利用いただき、ありがとうございます。 誠に勝手ながら、当店は2018年1月8日(月・祝)をもって 営業を終了させていただく事となりました。 オープンから今日に至るまで多くのお客様にご愛顧いただき、 誠にありがとうございました。 ACCESS