2009-02-01から1ヶ月間の記事一覧

数式を解くプログラム その5 - 構文解析2

id:yone-ken:20090220:p1 の続きです。再度、拡張BNFによる構文定義を確認します。 ::= ('+' )* | ('-' )* ::= ('*' )* | ('/' )* ::= '(' ')' | '+' | '-' | 構文解析を実装するに当たり、どんなクラスが必要でしょうか?また、そのクラスにはどんなメンバ…

数式を解くプログラム その4 - 構文解析1

id:yone-ken:20090219:p1 の続きです。例によって一般的な説明はwikipedia:構文解析を参照して頂くとして、「数式を解くプログラム」の場合の構文解析を具体的に説明します。そのために以前に定義した文法の抜粋を載せます。 ::= ('+' )* | ('-' )* ::= ('*'…

数式を解くプログラム その2 - 字句解析1

id:yone-ken:20090218:1234954345 の続きです。前回記載した数式の文法を踏まえた話をしますので、必要に応じて参照してください。「数式を解く」ためにはまず字句解析という処理が必要です。 wikipedia:字句解析 例によって細かい話は上記を参照して頂くと…

数式を解くプログラム その3 - 字句解析2

id:yone-ken:20090219:1235007962 の続きです。前回用意したTokenKind列挙型、Tokenクラスを使って、字句解析処理を実装します。字句解析を行うクラスはTokenizerクラスと命名します。そして、字句解析クラスのインターフェースを規定するクラスとしてContex…

数式を解くプログラム その1 - 概要

下記の掲示板での質問に触発されて、私も 数式を解くプログラムをC#3.0で作ってみました。■電卓 ((1+2)3)カッコの入れ子http://bbs.wankuma.com/index.cgi?mode=al2&namber=32500数式といっても対応するのは、四則演算(+, -, *, /)と丸括弧による演算の…

C#のメソッド名の制限事項

先日、WPFをまねてTransformクラスとその継承クラスRotateTransform、ScaleTransform、SkewTransform、MatrixTransform、TransformGroupクラスをC#のWindows Formsアプリケーションのプロジェクトで作ろうとしたときのこと。Transformクラスを抽象クラスとし…

ブログはじめました。

去年の年始からブログをやろうやろうと1年の目標に挙げていました。結局、去年は目標を果たせず、今の今まで実践できていませんでしたが、いよいよブログを始動します。このブログでやりたいこと。 ジャンルを問わず、プログラミングに関することで私が興味…