プログラム言語


Study

参考文献:「人間の考え方 プログラムの考え方」(藤田英時)ナツメ社

基本概念

機械語

  • コンピュータの処理を行うCPUが,行う動作を直接命令を理解できる言葉
    • 具体的には電荷のあるなしで示す2進法の数値
  • CPUの種類によって言葉は違う
    • それぞれ固有の機械語(ネイティブ コード)

プログラム言語

  • 最終的にはCPUに渡す機械語にするのだが,人間には理解しにくい
    • そこで,人間に分かりやすい言葉で命令文を書くのがプログラム言語
      • 高級言語:人間に分かりやすいソースコード
      • 低級言語:CPUが直接理解出来る命令言語

アセンブリ言語

  • 特に機械語を直接分かりやすく置き換えた言語
    • 低級言語に含むが,機械語に非常に近い言語

翻訳の仕方

  • 高級言語を低級言語に翻訳するときの方法は2種類ある
  • インタプリタ方式(逐次翻訳)
    • 命令を一文つず解釈する
      • エラーがすぐ分かる
      • 実行速度は遅い
  • コンパイラ方式(一括翻訳)
    • 命令全体を一度に機械語に翻訳してから実行
      • 実行速度は速い
      • エラーはもとの翻訳前に戻ってからやり直し

プログラム言語の種類

  • どんなプログラム言語があるかとその特徴

Webプログラム

  • 特にWeb上でのプログラミングに関して

勉強すべき言語

基本を学ぶ

  • Java Script
    • メモ帳でも作れるスクリプト言語
    • エラーが出たらメッセージが表示される
      • インタプリタ方式だから
    • ホームページにも使えるし
    • Windowsにもぴったり
      • C++似だから

インターネット関連

  • Java
    • ホームページに使うならJavaアプレットを開発
    • Webアプリケーションの開発はVisual Studio.NET

プログラム言語の基本を学ぶ

  • BASIC
    • 他は旧式
    • 初心者向けで良い

Windowsで学ぶ

  • Visual Basic
    • 部品の配置の感覚で作れる
    • もっと基本ならVBScript

高度なものを学ぶ

  • C
    • Cは高度で幅広いので,全ての基礎
    • ある程度出来るようになったらC++かC#

プログラム言語の根本を学ぶ

  • アセンブリ言語

流行を追う

  • Java
    • C,C++からVisual Basic,そしてJavaな流れ

プログラム開発手順

言語別の手順

インタプリタ言語

  • BASIC,Java Script
  • 手順
    • ソースコードを書く
      • エディタで書いてテキストデータとして保存
    • ソースファイルとして保存
    • 実行する
      • 直接,一文ずつ機械語に訳して実行
      • エラーが出たらソースコードに戻る

コンパイラ言語

  • FORTRAN,COBOL,C,C++
  • 手順
    • ソースコードを書いてソースファイルを作成
    • コンパイル
      • コンパイラにより機械語に訳す作業
      • エラーが出たらソースコードにフィードバック
    • オブジェクトファイルが出来る
    • ライブラリファイルとリンクさせる
      • リンカを使う
      • コンパイルとリンクを合わせてメイク(ビルド)という
    • 実行ファイルが出来る
    • ロードモジュール
      • デバッガで動作確認

開発作業

  • アルゴリズム
    • 処理手順を考える
  • フローチャート
    • 手順を視覚的に流れ図に表現する
  • プログラム
    • プログラム言語で表現
    • コードにする(コーディング)

構造化プログラミング

  • 効率よく作るために,パターン処理構造を当てはめていく
    • C言語はこの構造化プログラミング
    • ぐちゃぐちゃで良く分からないプログラム(スパゲティプログラム)を作らない
  • 4パターン
    • 順次処理
      • 1つ終わったら次,という基本的な流れ
    • 分岐処理
      • 条件により,次がどれかを示す
    • 前判定繰り返し処理
      • 繰り返し処理の前に分岐条件がある
    • 後判定繰り返し処理
      • 繰り返し処理の後に分岐条件がある

バグ

  • プログラムの欠陥や不良箇所

デバッグ

  • バグを取り除くこと

バグフィックス

  • バグを修正すること

セキュリティホール

  • 安全上の欠陥
    • 特にOSの基本的なアプリケーション等のバグをこう呼ぶ

パッチ

  • セキュリティホールを修正する際の差し替え部分
    • パッチを当てると表現する
      • Windows Update
      • セキュリティ修正サイトなどの修正ソフト

プログラミングの分類

指向

オブジェクト指向

  • 命令とデータをまとめたオブジェクト単位で処理をする
    • まとめてあるから命令に必要なデータが分かりやすい
  • Windowsアプリケーションはオブジェクト指向プログラムOOP*1
    • 「開く」「印刷」などがそれぞれのオブジェクト
    • それらを実行するきっかけとして,ボタンをクリックとかイベントを利用する
      • イベント駆動型プログラミング(イベントドリブンプログラム)

手続き指向

  • 命令とデータが別々になっている
    • 命令がどのデータを使うかが分かりにくい

実行場所による分類

クライアントプログラミング

  • 実行する端末側でプログラムを実行する
    • Javaアプレットなど

サーバープログラミング

  • サーバー側で実行する
    • 情報を格納したり,実行結果などを提供する
    • Javaサーブレットなど

プログラミングサービス

XML Webサービス

  • インターネット上の複数のWebアプリケーションを連携させる
    • あたかも1つのサービスのように仕立てて提供するもの

Microsoft.NET

  • 略して.NETと呼ばれる
    • 旧名はNGWS*2
  • XMLを利用
    • 情報機器が違っても互換性がある
    • アクセスの手順は標準のSOAP*3を利用
  • 統合基盤
    • .NET
  • 開発・利用環境
    • .NET Framework
  • 統合開発環境IDE*4
    • Visual Studio.NET
      • 様々な言語で開発できる

Sun ONE

  • .NETに対抗してサンマイクロシステムズが開発した

リレーショナルデータベース

  • 大量の情報を蓄積するデータベース
    • その中で最も良く使われるのがリレーショナルデータベースRDB*5
  • ソフトウェア
    • DBMS*6
      • データベースの作成や更新をする管理ソフトウェア
    • RDBMS
      • RDBにおける管理ソフトウェア
  • キーワード
    • トランザクション
      • データベースへの接続・検索・更新・切断などの手続き
      • トランザクション管理で手続き中は他の手続きはさせないようにする
    • ロードバランシング(負荷分散)
      • 複数のサーバへ処理を均等に振り分けること

SQL*7

  • RDBMSに指示して,データの抽出等の管理をするための言語
  • 世界標準でANSIやJISで標準化されてる
  • SQL基本操作
    • SELECT:選択
    • INSERT:挿入
    • UPDATE:更新
    • DELETE:削除

主なDBMS製品

Oracle

  • 世界的に見て非常に高いシェア

DB2

  • IBMにより開発される
  • 幅広いプラットフォームに対応
    • UNIX,Windows以外のメインフレームも含めたOSに対応

SQL Server

  • Microsoftにより開発される
  • Microsoft Visual Studio.NETと親和性がある
    • その開発画面から使える

Access

  • Microsoftにより開発
  • 小規模向けのDBMS
    • Access単体でアプリケーションとして使う

そのたオープンソース

  • MySQL
  • Postage SQL

*1 Object Oriented Programming
*2 Nent Generation Windows Services
*3 Simple Object Access Protocol
*4 Integrated Development Environment
*5 Relational DataBase
*6 DataBase Management System
*7 Structured Query Language