<CS스터디:1일1로그 100일 완성 IT지식>24-25장 정리

박건영(Parkgunyoung)·2022년 5월 31일
0

CS스터디

목록 보기
2/4

알고리즘은 이상, 프로그래밍은 현실

알고리즘은 추상적, 이상적이다?

알고리즘은 구현에 필요한 세부 사항과 고려 사항을 무시한다.

프로그램은 현실적이다?

실제 컴퓨터가 과제를 완료하기 위해 수행해야 하는 모든 단계를 구체적으로 서술한다.


<청사진 vs 실제>

프로그래밍은 하나 이상의 알고리즘이 컴퓨터가 직접 처리할 수 있는 형태로 표현된 것 과도 같음.

프로그래밍은 현실적인 문제도 신경써야 한다.

도시에 들어설 건물들의 청사진과 달리 실제 건물들은 한정된 공간안에서 최적의 공간효율성, 안전성, 교통, 고층빌딩의 경우 비행구역에 대한 문제, 내진설계 등 현실적인 고려사항이 모두 충족되어야 한다.

즉, 프로그램도 마찬가지로 불충분한 메모리, 제한된 프로세서 속도, 유효하지 않는 데이터, 하드웨어 결함, 네트워크 불량 등 의 문제점들을 신경써야 한다.


다른 프로그램을 처리하기 위한 프로그램?

최초의 프로그래밍이 가능했던 전자식 컴퓨터는 코드를 제대로 작성하기도 힘들고 수정조차 힘들었다.

이러한 문제점을 보완해 모리스 윌크스는 첫 번째 프로그램 내장식 디지털 컴퓨터 중 하나인 에드삭을 설계하고 구현했다.

오늘날 사용되고 있는 컴퓨터의 원형으로, 프로그램 기억 방식의 개념을 도입한 최초의 컴퓨터로 1958년까지 가동되어졌다.


반복 작업 처리를 위한 프로그램

1950년대 초 프로그래밍을 할 때 수반되는 단순한 반복 작업처리를 위한 프로그램이 몇 가지 만들어졌다.

다른 프로그램을 처리하기 위한 프로그램이라는 강력한 아이디어는 소프트웨어에서 가장 중요한 발전을 이루는데 핵심적인 기여를 했다.

<어셈블러:Assembler>

어셈블러는 번역하는 과정에서 필요한 모든 정보를 데이터베이스에 저장하고 필요 시 불러 사용을 한다.

어셈블리어로 작성된 소스 프로그램을 기계어(0과1로 구성)로 번역하고 로더(실행 가능한 파일로 만드는 프로그램)에 필요한 정보를 생성하는 역할을 한다.

어셈블러는 프로그래머가 기계어로 작성하지 않아도 어셈블리어로 작성한 원시 프로그램을 기계어로 번역(변형)해 준다.


어셈블러가 만들어지기 전에는 프로그래머가 수기나 암산 등으로 계산을 하여 변경 기록을 직접 관리해야 했는데, 변경 사항이 있을 때마다 카드나 종이 테이프에 구멍을 뚫어 컴퓨터 메모리에 적제하는 일을 수동으로 다시 해야 했다고 한다.

profile
쓰러지면어때일어나면그만인걸

0개의 댓글