소프트웨어 24,25강

김주형·2022년 8월 2일
0

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

알고리즘은 추상적이고 이상적인 절차를 기술한 것 구현에 필요한 세부 사항과 현실적인 고려 사항을 무시한다.
프로그램은 알고리즘과 반대되는 개념이다. 하나 이상의 알고리즘이 컴퓨터가 직접 처리할 수 있는 형태로 표현된 것

프로그래밍이란?

컴퓨터의 프로그램을 작성하는 일. 일반적으로는 프로그램의 작성 방법의 결정, 코딩(coding), 에러 수정 등의 작업 모두를 가리키지만 코딩만을 가리킬 때도 있음.

프로세서와 프로세스의 차이

프로세서(OS) -> 프로세서는 중앙 처리 장치를 의미하며, 컴퓨터에 조금 관심이 있는 사람이라면 많이 들어봤을 흔히 CPU라고 불리는 부품이 프로세서를 의미합니다.

프로세스(프로그램) -> 메모리에 적재되어 실행 중이거나 대기 중인 프로그램을 프로세스라 합니다. 즉, OS에서 얘기하는 프로그램은 컴퓨터에서 실행중인 모든 종류의 소프트웨어 프로그램들을 의미한다.

어셈블리 언어

기계어는 실제로 컴퓨터의 CPU가 읽어서 실행할 수 있는 0과 1로 이루어진 명령어의 조합이다. 이러한 각 명령어에 대해 사람이 알아보기 쉬운 니모닉 기호(mnemonic symbol)를 정해 사람이 좀 더 쉽게 컴퓨터의 행동을 제어할 수 있도록 한 것이 어셈블리 언어이다.

어셈블리 언어
10110000 01100001
HELLO WORLD!

adosseg
.model small
.stack 100h

.data
hello_message db 'Hello, World!',0dh,0ah,'$'

.code
main proc
     mov    ax, @data
     mov    ds, ax

     mov    ah, 9
     mov    dx, offset hello_message
     int    21h

     mov    ax, 4C00h
     int    21h
main endp
end main

특정 프로세서에서 아키텍처에서 사용되는 어셈블리 언어는 그 아키텍처에 특화된 언어다. 어셈블리 언어의 단점으로 사용되는 프로세서간 변환이 쉽지않다. 이런 식으로 코드를 작성하게 되면 개발자는 각 프로세서(예를 들면 컴퓨터와 핸드폰)의 세부사항을 모두 알고있어야 하며 두 기기를 호환할때 많은 작업이 필요하다.
결론은 어셈블리언어는 저수준 언어이며 많은 시간과 노력이 필요하고 확장성 면에서도 좋지 않다.

profile
프론트엔드 개발 지망생입니다.

0개의 댓글