2012年11月30日金曜日

Ada勉強メモ 2

Ada 教科書・ウェブページ紹介に載せた教科書

ADA-言語とプログラミング方法論

を読んでいきます。まずは目次から。

本書は4部から構成されています。目次をさらっと眺めます。

第I部 小規模プログラミング
  1. Ada入門
  2. Integerデータ型
  3. Booleanデータ型
  4. 基本的な制御構造
  5. 組織的プログラミング
  6. Characterデータ型
  7. 離散型
  8. さらに制御構造について
  9. Floatデータ型
  10. 配列と文字列
  11. レコード
  12. 副プログラム
第II部 大規模プログラミング
  1. パッケージ
  2. 例外
  3. 入出力
  4. プログラムの設計と構築
第III部 高度なデータ型
  1. アクセス型と動的データ構造
  2. 判別子を持つ型
  3. 数値型
  4. データ型一般について
第IV部 高度なプログラム構造
  1. 演算子宣言と多重定義
  2. 汎用体プログラム単位
  3. タスク
  4. ポータビリティとマシン依存プログラミング
  5. ケーススタディ:大規模情報システムの設計

僕はC言語畑の人ですが、聞いたことがない言葉が幾つかありますね。
  • 組織的プログラミング
  • 離散型
  • レコード
  • 副プログラム
  • アクセス型
  • 判別子
  • 汎用体プログラム単位
ざっと読んでみました。

「組織的プログラミング」の章は、大きなプログラムを作るときに必要になるテスト技法、段階的詳細化について解説していました。
テストにはホワイトボックステスト、ブラックボックステストがあります。
段階的詳細化というのは、解きたい問題を段階的に分割していく手法のことのようです。

「離散型」は、整数型や列挙型など、全順序が定義された離散的な値を扱う型の一般的な名前のようです。離散型ではないものの中には、実数型や構造型などが含まれます。(構造型ってなんだろう)

「レコード」は、C言語でいう構造体のことです。レコードは様々な型の複数の要素を持ちます。

今日の勉強はここまでです。ではまた。

2012年11月26日月曜日

【Git】タグを付け替える

Gitでのタグの付け方を勉強してました。
あるコミットに対してタグを付けたけど、やっぱり付け替えるやり方を見つけたのでメモ。

appling // gitタグの付け替えから引用します。
まずは既存のタグを削除
$ git tag -d <TAG>
$ git push origin :refs/tags/<TAG>
新たにタグを作成して公開
$ git tag <TAG>
$ git push --tags origin

この中で git push origin :refs/tags/<TAG> が良く分からなかったので、git help pushで調べてみました。
まずpushの構文は
 git push <repository> <refspec>
でした(かなり簡略化してあります)。

<refspec>には <src>:<dst> を指定できます。
<src>を空にした場合、<dst>を削除するという意味になるようです。
:<dst>を省略すると、<src>と同じrefが更新されるようです。

したがって、 git push origin :refs/tags/<TAG> はリモートの refs/tags/<TAG> を削除する命令ということですね。

そして、 push 時に --tags を指定すると、明示的に指定したrefに加え、 refs/tags 以下にあるすべての ref がアップロードされるようです。
したがって、 git push --tags origin は、<repository>=origin に、ローカルにあるすべてのタグをアップロードする命令ですね。

2012年11月18日日曜日

Ada 教科書・ウェブページ紹介

Adaを勉強するにあたり、参考となる教科書やウェブページを紹介します。

ADA-言語とプログラミング方法論
僕が教科書として使おうと思っている書籍です。
分厚くて、かなりたくさんの情報が載っている雰囲気です。
最初のAda規格に対応する古い本ですが、最新規格についての教科書が入手できませんでしたので、この本で勉強していくことにしました。

Ada Programming
WikibooksにあるAdaプログラミングの教科書です。
英語ですが、Ada 2005(現状の最新規格)までの範囲で解説がなされています。

Ada@WCIMH
Adaの勉強メモ的なウェブページです。
AdaからWIN32APIを呼び出すのは面白そうです。

2012年11月13日火曜日

研究の貢献を意識する

卒論や修論を書くときに常に考えておかねばならない,研究のテーマや貢献.
以下の質問項目にきちんと答えられれば,それなりにきちんと意識できていると思います.

まずこの2つ.
  • その研究は,どのような問題を解決しようとしていますか.
  • その問題が解決されたら,誰がどのくらい喜びますか.

上2つが固まってきたら,あと3つ
  • どういう方法でその問題を解決しようとしていますか.
  • その方法が本当に良いものかを確認するために,どのような実験を行いますか.
  • なぜその実験で,良いものかを確認できるのですか.


研究のテーマや貢献をしっかり意識できれば,論文の構成も浮かんでくるし,
どんな関連研究を調べればいいかも分かってくる.
何より,価値のある研究をすることができる!

2012年11月5日月曜日

Ada勉強メモ 1

ひょんなことからプログラミング言語 Ada を学ぶことになったので、
これからちょこちょこ勉強メモを書いていこうかと思います。

Adaってすげーんだぜ!

Adaっていうと
  • 古いんじゃないの?
  • もう使ってる人いないんじゃないの?
  • 何に使えるのさ
という意見があるかもしれません。僕もそんなイメージでした(というかAdaをほとんど知らなかった)。

最近ちょっとAdaを勉強したところによれば
  • 古くないよ!2005年にも新規格がISOに承認されたよ!
  • 航空分野なんかで使われているよ!
  • 航空機、航空管制などに使われているみたい。業界にはまったく詳しくないので本当のことは分かりません。
という感じ。いいね!

開発環境

勉強するには開発環境を入れましょう。
Adaはフリーのコンパイラがありますので、無料で勉強できます。
Mac OS Xでしたら、HomebrewにGNATがありますのでそれを入れてください。

$ brew install gnat

こうすると、gnatmakeやgpsなどのプログラムがインストールされます。
  • gnatmake: Adaプログラムのコンパイル過程を制御するプログラムっぽい
  • gps: Ada用の統合開発環境
僕の環境だと、インストール自体はできたのですが /usr/local/bin にリンクが生成されないっぽいのでこんな起動スクリプトを書きました。

#!/bin/sh
export PATH=/usr/local/Cellar/gnat/2012/bin:$PATH
gps

$ gps

で開発環境が起動します(X11アプリ)。

今回はここまで〜