最近のトラックバック

2015年1月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
無料ブログはココログ

プログラミング

2011-04-03

Gura プログラミング言語 v0.2.0 リリース

Bannermedium


Gura は、リストやイテレータで表される複数データを一度に処理できる暗黙的マッピングとメンバマッピングを特徴としたプログラミング言語です 。繰り返し構文でごりごりと書いていた内容を、巧妙な記述でシンプルにまとめる快感を味わえます。

ベータ版 v0.2.0 をリリースします。ダウンロード

Windows 用インストーラを作成しました。
拡張子 .gura および .guraw がそれぞれ実行ファイルに関連付けられます。

2011-03-22

Gura プログラミング言語リリース

Bannermedium

今まで AScript という名前でプログラミング言語を開発してきましたが、この名称はもともと仮名だったのでいつか変えようと思っていました。

このたび、Windows 用のインストーラを作る段になって正式な名称が必要になり、Gura プログラミング言語 と名前を変えました。ホームページは以下の URI  です。

http://gura.sourceforge.jp/

初めは、個人的に好きな動物、モグラにちなんで Mogura と名づけようと思っていたのですが、有名な言語 Modula とまぎらわしいので、ちょっと長さをつめてみました。子供たちに人気の絵本にでてくるネズミの名前も少々意識しています。

今後ともよろしくお願いします。

2011-03-21

WiX のライセンス確認を削除する方法

Gura の Windows インストーラを作るのに WiX を使っているのですが、ライセンス確認はいらないので削除したいと思いました。方法がちょっとわかりづらかったので、備忘録としてここに記しておきます。

はじめにしなくてはいけないのは、WiX のソースパッケージを入手することです。
UI をカスタマイズするには UIExtension のソースファイルが必要になるのですが、バイナリパッケージにはこれが入っていないからです。

ソースパッケージを展開したら、以下のディレクトリを開きます。

wix36-sources/src/ext/UIExtension/wixlib

WiX のインストーラの形式は UIRef エレメントで指定すると思いますが、この指定で上記のディレクトリにあるファイルの内容がとりこまれます。ですので、たとえば

<UIRef Id='WixUI_InstallDir' />

と記述していたところは、上のディレクトリにある WixUI_InstallDir.wxs から <UI /> エレメントの内容抜き出して以下のように置き換えることができます。

<UI Id="WixUI_InstallDir">
  <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
  <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
   ...
</UI>

<Publish/> エレメントでページの遷移状態を定義しているので、以下のように編集します。

  • LicenseAgreementDlg の行を削除
  • WelcomeDlg の Next の内容を LicenseAgreementDlg から InstallDirDlgに修正
  • InstallDirDlg の Back の内容を LicenseAgreementDlg から WelcomeDlg に修正

フォントの指定もすべてカスタマイズできるようですね。このアプローチを最初からチュートリアルに載せてくれていたほうがよかったんじゃないかな..。

2011-02-19

GMC-4 シミュレータのアクセス

GMC-4 シミュレータをリリースしてから 1 年以上たちます。

このブログ、管理人の筆不精が祟って更新が少なく、アクセス数もやはり多くないのですが、その中にあって一番アクセスが多いのが GMC-4 シミュレータのページです。

GMC-4 自体、もう書店で見かけることもなくなったので、その存在を知っている人の数も限られると思うのですが、興味のある方は健在のようですね。

GMC-4 を、今どのような形で使っているのか、とても興味があります。

2010-05-01

スクリプト言語 AScript を公開しました

スクリプト言語 AScript を公開しました。ぜひお試しください。

Gura プログラミング言語 と名称を変えました。お試しください。

2010-04-21

プログラミング言語の開発

ずいぶんと長いことブログの更新をしていませんでした。どうもおひさしぶりです。

現在、新しいプログラミング言語の開発にとりくんでいます。名前は AScript。仕事とは関係がない、まったくの趣味の言語です。(2011 年 5 月現在、名前を「Gura プログラミング言語」に変更して開発中です)

言語好きな人を刺激しそうないくつかの特徴をもりこんでいます。キーワードを列挙すると:

  1. 暗黙的マッピング処理
  2. LISP のマクロ定義に似た機能を可能にする quoted value 引数
  3. Ruby ライクなブロック定義

1. と同等な機能は、ベクトル演算用の言語以外でサポートしているものはあまりないようです。これが実装したくて、この言語の開発を始めたとも言えます。

その他、オブジェクト指向プログラミング・関数オブジェクトなどといったモダンなプログラミング言語がサポートする仕様はだいたい組み込んであります。文法は C++ や Java に似せていますが、モジュール管理やオブジェクトの扱いは Python を強く意識しています。

思わせぶりなことばかり書きましたが、もう少しで発表ができそうです。プログラミング界に一石を投じることができればいいですね (と、夢は大きく)。

2009-10-10

足し算と引き算の問題を自動生成する Excel ファイル

小学校 1・2 年生を対象にした、足し算と引き算の問題を自動生成する Excel ファイルを作成しました (ダウンロード)。Excel 2007 で作成し、動作確認しています。

Excel でマクロを含むファイルを開くと警告メッセージが表示されますので、マクロを有効にする設定を選択してください。[あたらしいもんだい] ボタンをクリックすると問題が更新されます。

シートごとに以下の種類の問題が作成されます。

10までのたしざん 10 までの数どうしを足す問題です。
10までのひきざん 10 までの数どうしを引く問題です。
20までのひきざん 20 までの数から 1 ケタの数を引く問題です。
100までのたしざん
(くりあがりなし)
100 までの数どうしを足す問題です。くりあがりはありません。
100までのひきざん
(くりさがりなし)
100 までの数どうしを引く問題です。くりさがりはありません。
100までのたしざん
(一ケタくりあがり)
100 までの数と 1 ケタの数を足す問題です。くりあがりがあります。
100までのひきざん
(一ケタくりさがり)
100 までの数から 1 ケタの数を引く問題です。くりさがりがあります。
100までのたしざん 100 までの数どうしを足す問題です。
100までのひきざん 100 までの数どうしを引く問題です。

利用に際しての条件や制限はありません。配布・改変もご自由にどうぞ。

2009-10-08

CMMI について思うこと

ソフト開発を生業にしている人ならば、誰もが CMMI という規格を意識していることでしょう。混沌としたソフト開発現場に厳密な開発プロセスを適用し、管理しやすくするものです。「成熟度レベル」という 5 段階の指標を導入し、レベル 1 が管理されていない段階、レベル 5 が最も高度に管理されている段階と定めています。アマチュアプログラマの開発にあえてこのレベルを適用するならば、ほとんど間違いなくレベル 1 になるでしょう。インドのソフト開発会社の多くがレベル 5 を取得しているというアナウンスを聞いたのもずいぶん久しいことになります。

最近ふと思い立ち、本家のサイト から仕様書をダウンロードしてざっとながめてみました。 CMMI には CMMI-DEV (開発者用途), CMMI-SVC (サービス業者用途), CMMI-ACQ (発注/受注者用途) の 3 種類があるのですが、私の興味の対象は開発者用途のCMMI-DEV です。

内容は、開発に関わるあらゆるプロセスの目的や守るべきルールが記述されています。特に、プロセス間の関連やフローを表した章 (4. Relationships Among Process Areas) は、実際の開発現場をとりしきる際に大いに参考になりそうでした。

一見、これらの決め事をすべて守っていれば自ずと品質の高いソフトを生み出す組織ができるように見えます。でも、どうにも腑におちないところがあります。この規格は、開発者のモティベーションというものを軽視していないでしょうか。

CMMI は開発プロセスを厳密に決めていき、プロセスに従っていれば一定の品質を保てるとしています。重要なのはプロセスであり、属人的な能力に依存した開発スタイルを否定します。これは、いわば開発者一人ひとりを、プロセス内で代替の利く「部品」として扱うことを意味します。

プロセスの中には「トレーニング」という項目もあり、組織を構成する個々の開発者の質も向上できることが謡われています。ですが ... 学ぶのはあくまでも人です。やる気のない人がいくら教育やトレーニングを受けたところで限度があります。管理づくめの環境、個々の自尊心もさほど重視されない中で、質の高いエンジニアが育っていくものなのでしょうか。

ソフト開発は、頭の中の考えをほぼストレートに具現化していくという点で、小説の執筆と似ていると思います (私自身は書いたことがありませんが)。小説家の執筆作業を、プロセスとして厳密に定義し、管理するなどという試みは聞いたことがありません。むろん、ソフト開発は執筆作業と異なり 2 人以上で作業を分担することが多いですから、お互いに守るべきルールやプロセス定義が必要にはなります。しかし、それは極言してしまえばいわば「必要悪」です。ソフトの質の向上をもたらす源(みなもと)は、個々人の能力・創作意欲であり、ルールを強化したところで改善できる領域ではないと思うのです。

そうはいうものの、ソフト開発を職にしていれば避けてとおれないこの規格。私もいつか直面するときが来るのでしょう。どう適用すれば開発者が幸せになれるのか、考えていかなければいけません。

GMC-4 の魅力

GMC-4 付きの大人の科学が発売された 7 月には、多くの人がブログなどでいろいろな試みを発表していました。その中でも私が興味を持ったのは、キーボードの接点を使ってパソコンと接続するものでした。

実装方法はどれも少しずつ違うものの、USB 内蔵のマイコンを介して接点を操作するものが主流だったようです。エンジニアにとって、貧弱な環境を自分の手で改良していくプロセスほどおもしろいものはありません。昔のパソコンは当たり前のように「貧弱」だったからこそ、遊びがいがあったのだと思います。今は GMC-4 のような、故意に機能を落とした環境にしかその醍醐味を見出せないのは残念ですが、そんなことは趣味とわりきってしまえば大きな問題にはならないのかもしれません。GMC-4 本体よりも通信用のマイコンの方がずっと高機能というナンセンスさも、趣味の味わいを深めるスパイスになるのです。

私が最近とりくんでいるシミュレータも、ずいぶんとナンセンスな代物です。こんな非実用的な機械のための「開発環境」というのは、どこかで存在理由を大きく欠落させています。でもそんなナンセンスさ加減が、最近フロンティアを見失ってしまった私をひさしぶりに夢中にさせているのです。

このページにトラックバックをつけてくれた方がいて、そこのリンクからゲームボーイアドバンスで動く GMC-4 シミュレータ (http://d.hatena.ne.jp/akkera102/) を作成中ということを知りました。「ナンセンスさ」で言えば私のものと甲乙つけがたいところでしょうか。ぜひこの無意味で、でもなんとも甘美な趣味をまっとうしていただきたいと思います。

2009-09-26

開発環境について

Borland C++ と wxWidgets を使った開発環境についてまとめました。自分でも設定方法を忘れることが多いので備忘録もかねて。