プログラム言語及演習1
주요 단어 정리
-시험 준비
はじめに
プログラミング: コンピュータがきちんと計算を行えるように命令の手 順を決め、その命令手順を記述した「プログラム」を 作成する作業。
プログラムはプログラミング言語を用いて記述。
プログラミング言語: コンピュータが処理しやすいように設計された人工 的な言語。C言語もその中のひとつ。
처음으로
프로그래밍:컴퓨터가 제대로 계산하도록 명령의 순서를 정하고 그 명령 순서를 기술한 "프로그램"을 작성하는 작업.
프로그램은 프로그래밍 언어를 사용하여 기술.
프로그래밍 언어:컴퓨터가 처리하기 쉽게 설계된 인공적인 언어.C언어도 그 중의하나.
プログラミングの習得に求められること
• プログラミング言語の文法の知識 • アルゴリズムの知識 • 全体の流れを決め、最適なコードを組み立てる力 • デバッグ能力 • 慣れ
프로그래밍의 습득에 요구되는 것
·프로그래밍 언어의 문법 지식·알고리즘의 지식·전체의 흐름을 결정하는 최적의 코드를 조립하는 힘·디버깅 능력·습관
コンピュータのしくみを理解する
ハードウェア=プロセッサ+メモリ+I/O
PCのふたを開けるとたくさんのICが 詰め込まれている。
ICの内部には数十個~数百万個の 小さなトランジスタが入っており、それ らを組み合わせることで、コンピュー タのさまざまな機能が実現される。
コンピュータのしくみを理解する
ハードウェア=プロセッサ+メモリ+I/O
ICには多くの種類がある。機 能的に分類すると「プロセッ サ(CPU)」、「メモリ」、「I/O ( Input/Output= 入出力装 置)」の3種類に大別できる。 大雑把に言えば、PCのハー ドウェアは、プロセッサ、メモ リ、I/Oから構成されている。
コンピュータの 動作原理 実行サイクルの各ステップ
1.命令フェッチ プログラムカウンタ(PC)の値を用いて、 命令をメモリから命令レジスタ(IR)に読 み込む。
2.命令デコードとレジスタ読み出し 命令をデコード(解釈)する。その次にレジスタにアクセスして値を取り出す。 さらに次の命令フェッチに備えて、次の命令を指すようにPCの値を更新する。 3.命令の実行または実効アドレス生成 前のデコード結果に従いALUが演算を行う。命令がメモリアクセスの場合はア クセスするアドレスを計算し、分岐命令の場合は分岐先アドレスを計算する。 4.メモリアクセスまたは分岐完了 メモリアクセスの場合は、前に求めたアドレスに対してメモリアクセスを行い、 データをロード(読み込み)/ストア(書き込み)する。分岐の場合は、計算した 分岐アドレスをPCにセットする。 5.レジスタ書き込み ALUの出力結果をレジスタに書き込む。ロード命令の場合はロード結果をレジ スタに書き込む。
プログラミング言語(プログラム言語) 計算機に対し動作手順、動作方法、動作内容など を適切に指示するために用いられる、人工的に構 成された言語体系のこと。
機械語:コンピュータの中央処理装置が直接解釈で きる命令。0と1だけからなる2進数の羅列で記述さ れている。
人間には機械語を扱うのは難しい。計算機に与える 指示を、より人間にとって扱いやすい表現で与える ための手段として、プログラミング言語が用いられて いる。
프로그래밍 언어(프로그램 언어)계산기에 대한 동작 순서, 동작 방법, 동작 내용 등을 적절하게 지시하기 위해서 이용되는 인공적으로 구성된 언어 체계이다.
기계어:컴퓨터 중앙 처리 장치가 직접 해석으로 자른 명령. 0과 1에서만 된 2진수의 나열로 기술되고 있다.
인간은 기계어를 다루는 것은 어렵다.계산기에 미치는 지시를 더 인간에게 다루기 쉬운 표현으로 주기 위한 수단으로 프로그래밍 언어가 사용되고 있다.
機械語の数値的表現を改善するために英語的表現を取り入れ たのがアセンブリ言語。
アセンブリ言語を機械語に翻訳する作業をアセンブルといい、そ のためのソフトウェアをアセンブラと呼ぶ。
しかし、アセンブリ言語もカナやローマ字のような所詮は機械語 と1対1対応の関係。CPUに依存する。
そこで、人間とコンピュータの橋渡しをするものとして高級言語が 作られた。高級言語はCPUに依存しない。解決すべき問題に適 応した各種高級言語が産まれた。
高級言語とは、解決すべき問題への依存が強い言語を意味し、 逆にコンピュータハードウェアへの依存が強い言語を低級言語と いう。
기계어의 수치적 표현을 개선하기 위해서 영어적 표현을 도입한 것이 어셈블리 언어.
어셈블리어를 기계어로 번역하는 작업을 어셈블다는, 그리고를 위한 소프트웨어를 어셈블러라고 부른다.
그러나 어셈블리 언어도 가나와 로마자처럼 결국은 기계어와 1대 1대응 관계.CPU에 의존한다.
거기에서 인간과 컴퓨터의 중개하는 것으로 고급 언어가 만들어졌다. 고급 언어는 CPU에 의존하지 않는다. 해결해야 할 문제에 적합 가능한 각종 고급 언어가 태어났다.
고급 언어는 해결해야 할 문제에 대한 의존도가 높은 언어를 의미하고 반대로컴퓨터 하드웨어에 의존이 강한 언어를 저급 언어라는.
コンピュータは機械語しか理解できないため、高級言語 で書かれたプログラムは機械語に翻訳する必要がある。
Cは高級言語のひとつ。
高級言語を低級言語に一括翻訳する作業をコンパイル といい、そのためのソフトウェアをコンパイラという。
さらに高級言語を逐一翻訳しながら同時に実行も行うソ フトウェアをインタプリタという。
具体的なコンパイラやインタプリタのプログラムを言語 処理系あるいは処理系と呼ぶ。
컴퓨터는 기계어밖에 이해할 수 없기 때문에 고급 언어로 쓰인 프로그램은 기계어로 번역해야 한다.
C는 고급 언어의 하나.
고급 언어를 저급 언어에 일괄 번역하는 작업을 컴파일과는 이를 위한 소프트웨어를 컴파일러와 한다.
더 고급 언어를 일일이 번역하면서 동시에 실행도 하는 서울 후토복을 인터프리터라고 한다.
구체적인 컴파일러나 인터프리터의 프로그램을 언어 처리계 혹은 처리계라고 부른다.
Cによって書かれたプログラムをソースプログラムと 呼ぶ。ソースプログラムを機械語あるいはアセンブリ 言語に翻訳する作業をコンパイルと呼び、コンパイラ というソフトウェアによって行われる。
アセンブリ言語を経由する場合はここでアセンブルが 行われる。コンパイラ、あるいはアセンブラによって、 ソースプログラムから機械語の部品が作成されるが、 これは不完全なプログラムであり、まだCPUが実行で きる形式ではない。
この不完全なプログラムを、他の部品と結合して、完 全な機械語プログラム(実行可能形式プログラム)を 生成するのがリンクと呼ばれる作業である。
c에 의해서 쓰인 프로그램을 소스 프로그램이라고 부른다. 소스 프로그램을기계어 혹은 어셈블리 언어로 번역하는 작업을 컴파일과 부르며 컴파일러라고 하는 소프트웨어에 의해서 이루어진다.
어셈블리어를 경유하는 경우는 여기에서 분해가 진행된다. 컴파일러, 어셈블러에 의해서, 소스 프로그램에서 기계어의 부품이 작성하는데, 이는 불완전한프로그램이며, 아직 CPU가 실행에서 업다 형식이 아닙니다.
이 불완전한 프로그램을 다른 부품과 결합하여 완제 전 기계어 프로그램(실행가능 형식 프로그램)을 생성하는 것이 링크로 불리는 작업이다.
コンパイル時とリンク時に生ずるエラーはその意味合 いが全く異なる。前者は文法、構文に関するものであ り、後者は主としてシンボル名の不整合に関するも のである。またアルゴリズムの不備に起因する不整 合は実行時エラーとして現れる。
エラーの修正はプログラマの宿命。プログラミング初 級者はこの3つのエラー、コンパイルエラー、リンクエ ラー、実行時エラーを見極めることが第一。 もちろん、「エラーが出なければ正解」ではない。エ ラーが出なくてもプログラムは正しく動かない場合が あるので注意。
컴파일시와 링크시에 생기는 오류는 그 의미고 밤송이가 전혀 다르다. 전자는문법, 구문에 관한 것으로어, 후자는 주로 상징 이름의 부정합에 관한도 것이다. 또 알고리즘의 미비에 기인하는 부정 도착은 실행 시 에러가 나타난다.
에러 수정은 프로그래머의 숙명. 프로그래밍 첫 급자는 이 3개의 실책, 컴파일오류, 린 쿠에라 실행 시 에러를 판별하는 것이 제일. 물론"에러가 나서지 않으면 정답" 아니다.라 라가 나오지 않아도 프로그램은 제대로 움직이지 않는 경우가 있어서 주의.
C言語はコンパイラ型言語
プログラミング言語の利用形態による分類 アセンブリ言語:機械語に対応する命令をシンボリッ クな表現で記述する。CPUのレベルに近い命令記述 がとられることから、機械語とともに、低級言語と呼 ばれる区分にも分類される。 コンパイラ型言語:変数名や数式などのような、人 間が読みやすい、より抽象的な表現によってプログ ラムを記述し、コンパイラを用いて機械語や中間言 語などのより低レベルの命令に変換し、目的のプロ グラムを生成する。 インタプリタ言語:実行時にその都度、命令の解釈と 実行を行う。コンパイルの過程がないか、あるいは ユーザーから隠されている形態。
C언어는 컴파일러형 언어
프로그래밍 언어의 이용 형태에 의한 분류 어셈블리어:기계어에 대응하는 명령을 싱보릿 큰 표현으로 기술한다. CPU수준에 가까운 명령 서술이 취하는 것에서 기계어와 함께, 저급 언어로 불리는 구분에도 분류된다. 컴파일러형 언어:변수 이름과 수식 등 같은 사람 사이가 읽기 쉽고 보다 추상적인 표현에 의해서 뿌로구 램을 기술하고, 컴파일러를 사용하여 기계어와 중간 말어 등 보다저급한 명령으로 변환하고, 목적의 프로 그램을 생성한다. 인터프리터 언어:실행시에 그때마다 명령의 해석과 실행한다.컴파일 과정이 없거나 사용자에게 숨기고 있는 형태.
C言語は手続き型言語
プログラミング言語の構成の違いによる分類 • 手続き型言語:手続きの集まりをもとに、ジャンプ、 条件判定、繰り返しなどを制御しプログラムを構築 (Fortran、COBOL、BASIC、C言語、Pascal) • 関数型言語:関数の合成として表現 (Lisp、Scheme、F#) • 論理型言語:論理式の集まりとして表現 (Planner、Prolog) • オブジェクト指向言語:オブジェクト群とその相互作 用として表現 (Smalltalk、C++、Java、C#)
C언어는 절차형 언어
프로그래밍 언어의 구성의 차이에 의한 분류·절차형 언어:절차의 모임을 바탕으로 점프, 조건 판정, 반복 등을 제어하는 프로그램을 구축(Fortran, COBOL,BASIC, C언어, Pascal)·함수형 언어:함수의 합성으로 표현(Lisp, Scheme,F#)·논리형 언어:논리식의 모임으로 표현(Planner, Prolog)·객체 지향 언어:객체 군과 그 상호작용으로 표현(Smalltalk, C++, Java, C#)
C言語は手続き型言語
手続き(命令)型プログラミング • 実行すべき一連の計算ステップを持つ。手続きと は記述された命令のこと。手続きはプログラム実 行中の任意の時点で呼び出すことができ、他の手 続きからの呼び出しも、自分自身からの呼び出し (再帰呼び出し)も含まれる。
手続き型プログラミング以外の方式 • 逐次型プログラミング • 非構造化プログラミング 複雑なコードを組むことは困難。保守性が悪い。
C언어는 절차형 언어
절차(명령형 프로그래밍·실행해야 할 일련의 계산 단계를 갖는. 절차는 기술된 명령의 것. 수속은 프로그램 사실 행 중의 임의의 시점에서 불러낼 수 있고, 나머지 손 이어의 호출도 자신의 호출(재귀 호출)도 포함된다.
절차적 프로그래밍 외의 방식·축자형 프로그래밍·비구 조적 프로그래밍 복잡한 코드를 짜는 것은 곤란.보수성이 나쁘다.
컴퓨터 기초공학 - 챕터12 I/O 컴퓨터기초입출력 (0) | 2017.07.30 |
---|---|
컴퓨터 기초공학 기말,중간시험(테스트) 기출문제 (0) | 2017.07.30 |
전자기학 - 4장 유전체(분극 벡터,전위,콘덴서) (0) | 2017.07.27 |
컴퓨터기초공학 - 챕터14회 계산기구성 (0) | 2017.07.27 |
컴퓨터 기초공학 - 챕터13회 파이프라인처리 (0) | 2017.07.19 |