2009年8月19日水曜日

Cの文法[01] 分岐・繰返し

Cの文法です。

C言語は関数が集まった構成になっている。
特殊な

  • 分岐
    • if構文
      else構文はなくてもOK
      if(condition){
      /*condition true */
      }
      else{
      /*condition false*/
      }
  • 繰り返し
    • for文

      for(初期化式; 条件式; 変更式){
      繰り返し処理
      }
    • while文
      conditionの変数が0以外の間繰り返します。
      開始時に0である場合は繰り返し処理は実行されません。

      while(条件式){
      繰り返し処理
      }
    • do/while文
      conditionの変数が0以外の間繰り返します。
      whileと異なり最低でも1回は繰り返し処理が実行されます。
      do{
      繰り返し処理
      }while(条件式)

2009年8月18日火曜日

C言語の概要

概要なのですが、はっきりいってしまうと
Wikipediaを見てもらえればそれでいいと思っています。

個人的に重点だと思ったところだけ以下に記載しておきます。
  • OS(UNIX)の移植用に開発されたため、OSカーネル向けの低レベルな記述ができる
  • 手続き型言語
  • コンパイラ言語
  • 自由度、実行速度、コンパイル速度を優先した結果、
    コンパイル後のコードの安全性が犠牲になっている
特徴
  • フリーフォーマット
  • 構造化をサポート
  • モジュール化がファイル単位で可能
  • プログラムを関数に分離できる
  • 高級言語でありながら低レベル処理が可能
  • 配列参照時の自動的な添字のチェックをしない
    → バッファオーバーフローの要因
  • 文字列を格納するための特別な型が存在しない
    → バッファオーバーランの要因
  • 自動変数の自動的な初期化をしない
    → 誤って不定の値の変数を読み出すバグを作り込みやすい
  • 入出力を含め、実行時の言語独自のランタイムシステムの存在をほとんど期待しない。
    → I/O関係は言語の外にあるため、機種依存性が低い
  • プログラムの実行に必要なハードウェア資源が他の高級言語より少なくてすむ
規格
  • K&R
    標準化されるまでのもの。いわゆるK&Rがリファレンスとして使用された。
  • C89
    ISOとANSIが共同でCの企画の標準化が行われた。
  • C95
    C89に国際化のためのワイド文字版ライブラリが追加された。
  • C99
    C++の機能をいくつか取リ入れた機能拡張がなされた。
  • MISRA-C
    車載用ソフトウェアを対象としたCによるコーディングガイドライン

C/C++の勉強範囲

以下の項目を勉強していきます。
  • C言語
    • 概要
    • 文法
    • プリプロセッサ
    • 標準ライブラリ
  • C++言語
    • 概要
    • 文法
    • プリプロセッサ
    • 標準ライブラリ
    • Boost

C/C++の勉強のためにすること

C/C++を勉強する予定です。
以下は、やることです。
  • C/C++について現状ので知っていることを確認する
  • C/C++についての勉強範囲を決める(そのための調査含む)
  • 対象範囲を勉強するのにかかる時間を見積もる
  • C/C++を勉強する目的を明示的に書き記す
以上をとりあえず実施して、その後に具体的に計画を立てていきます。

2009年8月17日月曜日

OSSオープン・ラボに利用申請してみた

最近OSS製品を使用してサーバ環境を構築したいと考えているのですが、
個人レベルでは、ハードウェアもないため、実験できません。
そこで、IPAが行っているOSSオープン・ラボ(https://www.openlab.ipa.go.jp/)が使用できないかと考えています。
とりあえず、利用規約に目を通した後にアカウント申請してみました。
完全な個人的な目的なので、組織名は個人と入力して登録してみました。

その後、送られてきたメールを確認すると、
Webでの登録後に、さらに、利用登録申請書に記載して
FAXまたは、郵送での申請が必要とのことだったので、
印刷して郵送してみました。
申請書にも利用目的などの項目があり、Webで入力したものを
確認しながら書いたのですが、面倒でした。
なぜWebで登録後にわざわざ郵送する必要があるのでしょうか。
紙媒体での管理が必要なら、メールの印刷などでも対応できるでしょうし・・・。
せめて、利用目的などの項目は、郵送のほうは外してほしかったです。

さて、個人の申請が通るのかわかりませんがレスポンスがあり次第また投稿してみます。

方針転換

あまり更新できていないので、原因を考えてみたのですが、
原因のひとつとして、LPICだけを勉強しているわけではないので、
投稿する内容がない場合が多いことが1つあります。
そのため、LPICに限らず、勉強したことについて、メモ代わりに、
ここで公開していこうかと思っています。