Program: a sequence of instructions (명령어가 나열된 것)
Parsing: Formal language, natural language에서 구조를 파악하는 것
Natural language: 사람들이 말할 때 사용하는 언어
-> 모호함(문장을 봤을 때 의미하는 바를 알기 힘든 경우가 있음), redundant함(부가 설명이 있을 수 있음)
Formal language: 특정한 목적을 위해 사람이 고안해낸 언어 (수학 기호, 화학식, 프로그래밍 언어)
-> 엄격한 문법 규칙이 존재함, 명확함, redundant하지 않음
-> 이해하는데 시간이 오래 걸림 (dense), syntax error(구문 오류)에 예민함
Expression: 식, 값, 연산자, 변수와 연산자의 조합 등
Statement: 효과를 지니는 코드, 변수 선언, 변수 출력 등
PEMDAS (연산의 우선 순위)
Parentheses(괄호) > Exponentiation(지수) > Multiplication, Division (곱셉, 나눗셈) > Addiction, Subtraction (덧셈, 뺄셈)
Syntax error: 컴퓨터 프로그래밍 문법 에러
Runtime error: 문법 에러를 제외한 실행 중 에러 ex) a=0, b=1, b/a를 하면 에러 발생 <0으로 나눌 수 없음>
Semantic error: 에러 메시지는 없지만 원하는 계산을 하지 못 한 경우 (의도치 않은 결과)
Debugging: 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산(버그)을 찾아내고 그 원인을 밝히고 수정하는 작업 과정
Function: 이름이 붙여진 statement의 나열
Fruitful function: return value가 있는 함수
Void function: return value가 없는 함수
Module: 함수,클래스들의 모음이 담긴 파일
Library: 모듈 모음이 담긴 디렉토리
Traceback: 어떠한 순서대로 함수가 호출되느냐를 나타내는 것
Encapsulation: 코드의 일부를 함수로 만드는 과정
Generalization: 파라미터를 추가해서 기능을 확장하는 것
Refactoring: 사용하는 함수를 개선하고 재사용이 용이하도록 정비하는 것
Docstring: 함수를 설명하는 문자열 (함수 시작 부분에 위치함)
Preconditions: 함수를 호출할 때의 조건
Postconditions: 함수가 실행되고 난 후의 조건
Argument: 함수 호출 시 전달하는 값 (인수)
Parameter: 함수의 입력 변수 (매개변수)