システムプログラミング序論

  [ GB11954 ]
Introduction to System Programming
対象:2学年 開設学期:秋ABC 曜日・時限:月3・4 単位数:3単位
担当教員:大山恵弘

概要

システムプログラミングの基礎を学ぶため、C言語および機械語によるプログラミングについて講義する。C言語、およびx86アーキテクチャの機械語によるプログラムの作成を通して、計算機の構成を命令セットアーキテクチャのレベルで理解することで、実際の計算機がどのようにしてプログラムを実行するのかを理解する。また、C言語のプログラムと機械語のプログラムの関係についても理解する。

学習・教育目標

1. C言語による簡単なプログラミングができるようになる。
2. x86アセンブリ言語による簡単なプログラミングができるようになる。
3. コンピュータに近い層におけるプログラムの記述や動作について理解する。

キーワード

C言語、システムプログラム、アセンブリ言語、機械語、x86、計算機アーキテクチャ

Keywords

C language, system programs, assembly language, machine language, x86, computer architecture.

時間割

講義内容/理解すべき項目
1, 2オリエンテーション,C言語の基本,入出力,条件分岐,繰り返し,配列,関数
3文字と文字列,多次元配列,ファイル入出力,コマンドライン引数
4ポインタ,構造体
5, 6動的なメモリ割り当て,変数の有効範囲,リスト構造,再帰呼び出し,木構造
7関数ポインタ,エラーとエラー処理
8中間試験とその解説
9コンピュータの仕組みと機械語,x86アセンブリ言語と基本的な命令
10アドレシングモードと分岐命令
11, 12演算命令,関数呼び出し
13関数呼び出し規約,スタックフレーム,C言語との連携
14ストリング操作命令,システム操作命令,実行可能ファイル
15期末試験とその解説

教材

講義資料、実習問題等を講義のWebページやmanabaを通じて配布する。

参考書籍

高橋麻奈,やさしいC 第5版,ソフトバンククリエイティブ
柴田望洋,新・明解C言語 ポインタ完全攻略,ソフトバンククリエイティブ
B. W. カーニハン,D. M. リッチー,プログラミング言語C 第2版,共立出版
David A. Patterson,John L. Hennessy,コンピュータの構成と設計 第5版 上,日経BP
IA-32 インテル アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
Intel 64 and IA-32 Architectures Software Developer's Manual

予備知識・前提条件

「コンピュータリテラシ」「プログラミング入門A,B」「論理回路」「データ構造とアルゴリズム」で学ぶ知識

成績評価

中間および期末試験、レポートを総合して評価する。出席状況が良くない場合には減点することがある.

教員メールアドレス

oyama
のあとに(AT)cs.tsukuba.ac.jp

オフィスアワー

水曜3限 学術情報メディアセンターA416