[프로그래밍언어론] 20. 명령문(Statements)

2023. 10. 11. 23:45·프로그래밍언어론
목차
  1. 명령문
  2. 정의의 모호함
  3. 변수의 개념
  4. 할당(Assignment)

명령문

  • 명령문은 계산이 반드시 값을 반환할 필요는 없지만 부작용이 있을 수 있는 구문 엔터티이다.
  • 명령문은 모든 프로그래밍 언어에 존재하는 것은 아니지만 일반적으로 명령형 언어에서 사용된다.
  • 명령문을 실행(또는 평가)함으로써 프로그램 상태를 계속 변경할 수 있다.
    • 예) print("Hello World!")
    • 프린트를 함으로써 모니터의 상태가 변경된다.

 


 

정의의 모호함

  • 표현식과 명령문을 정의하기 위해 정확하고 정확하게 정의되지 않은 '계산(evaluation)'라는 용어를 사용했다.
  • 다른 언어에서는 표현식에 부작용이 있을 수 있고 명령문에 반환 값이 있을 수 있다.
    • C에서 할당은 변수 값을 수정하고 값을 반환한다.
  • 주요 차이점은 계산 전에 상태가 고정되어 있으면
    • 표현식 계산 결과 : 값
    • 명령문 계산 결과 : 상태 변경

 


 

변수의 개념

  • 프로그래밍 언어에서는 두 가지 변수 모델이 사용된다.
  • 수정 가능한 변수(Modifiable Variable)
    • 변수는 값을 저장하는 컨테이너 또는 위치로 간주된다.
    • 값은 할당을 실행하여 "수정 가능"합니다.
  • 참조 모델(Reference Model)
    • 변수는 값의 컨테이너가 아니라 메모리에 저장된 값에 대한 참조로 간주된다.

  • 수정 가능한 변수에서는 변수 자체가 컨테이너이다.
  • 참조 모델에서 변수는 단지 메모리 위치에 대한 참조일 뿐이다.
  • 이는 변수의 개념으로 언어마다 구현이 다를 수 있다는 점에 유의해야한다.

 


 

할당(Assignment)

  • 할당은 수정 가능한 변수와 연관된 값을 수정하는 명령문이다.
  • <assign> ::= <expr1><opAssign><expr2>
  • <expr1>의 경우 l-value를 사용하고 <expr2>의 경우 r-value가 필요하다.
    • x = 3;
    • x = x + 1;
    • 왼쪽에는 x의 left-값(위치)을 사용하고, 오른쪽에는 x의 right-value(값 3)을 사용한다.

 

  • 할당은 참조 모델의 변수와 어떻게 작동하는가?
    • x = y
    • y의 값을 변수 x에 복사한다는 의미가 아니다.
    • 오히려 이제는 동일한 객체에 대한 두 개의 참조이다.
    • y를 수정할 수 있으며 x를 통해 볼 수 있다.
    • 포인터 변수와 유사하지만 참조 모델에서는 할당을 통해 간접적으로만 값을 수정할 수 있다.
  • Java는 클래스의 변수에 대한 참조 모델을 사용하는 언어이다.
    • City c = new City("Seoul");
저작자표시 변경금지 (새창열림)

'프로그래밍언어론' 카테고리의 다른 글

[프로그래밍언어론] 22. 재귀(Recursion)  (0) 2023.10.12
[프로그래밍언어론] 21. 제어 흐름(Control Flow)  (0) 2023.10.11
[프로그래밍언어론] 19. 표현식(Expression)  (0) 2023.10.11
[프로그래밍언어론] 18. 파이썬으로 CRT 구현  (0) 2023.10.11
[프로그래밍언어론] 17. 범위 규칙 구현(Scope Rule Implementation)  (0) 2023.10.11
  1. 명령문
  2. 정의의 모호함
  3. 변수의 개념
  4. 할당(Assignment)
'프로그래밍언어론' 카테고리의 다른 글
  • [프로그래밍언어론] 22. 재귀(Recursion)
  • [프로그래밍언어론] 21. 제어 흐름(Control Flow)
  • [프로그래밍언어론] 19. 표현식(Expression)
  • [프로그래밍언어론] 18. 파이썬으로 CRT 구현
파스텔코랄
파스텔코랄
Developer Blog 📜 Lots of rules and no mercy ✨
슬기로운 개발일지Developer Blog 📜 Lots of rules and no mercy ✨
파스텔코랄
슬기로운 개발일지
파스텔코랄
전체
오늘
어제
  • 스터디
    • 컴퓨터시스템구조
    • 모바일프로그래밍
    • 프로그래밍언어론
    • 운영체제
    • 컴퓨터네트워크
    • 데이터분석
    • 소프트웨어공학
    • 시스템프로그래밍

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • About

링크

공지사항

인기 글

태그

운영체제
어셈블리어
프로그래밍언어론
네트워크

최근 댓글

최근 글

hELLO· Designed By정상우.v4.6.1
파스텔코랄
[프로그래밍언어론] 20. 명령문(Statements)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.