프로그래밍[Univ]/프로그래밍 언어론

[프로그래밍 언어론] 명령형 언어의 특징 1 - 명명법(identifier)

Cloud Travel 2011. 10. 7. 20:48
명령형 언어의 특징이라는 주제를 달고 나온 부분은 자신이 프로그램언어를 개발시
고려해야할 상항에 대해서 나와 있는 것입니다.
-----------------------------------------------------------------------------------------------------

* 명명법(identifier) : 명명법을 표현하기 위해서는 다음 4가지를 고려 해야한다.

1. 길이 

 예전에는 컴퓨터의 메모리가 적었기에 이름의 길이를 제한하고 있었다. 예를들어 FORTRAN은 최대 6개로 이뤄져있고, 프로그램언어를 영어처럼 표현하기 위한 목적으로 만들어진 COBOL에서도 최대를 30으로 제한하고 있다.
 현재에는 메모리가 풍부하여, 이름의 길이에 제한하지 않는 언어가 많이 있다. 변수명이 너무 길어져도 힘들기 때문에 이를 구현하는 사람끼리의 약속으로 제한을 부여하는 것이 좋다.


2. 커넥터(Connector)
 
 특수문자를 사용하여 문자사이를 연결 시켜주는 것을 이야기한다. 예를 들어, "sum_of_score"와 같은 형태를 취하는 이름을 뜻한다. 현재 Pascal, Modula-2, FORTRAN 77이외에는 모두 지원을 해주고 있다.


3. 대소문자 구분

 
 대소문자를 구분한다면 가독성과 작성력에 영향을 끼칠 수 있다. 가독성에 끼치는 영향의 예는 다음과 같다. 어떤 사람이 변수를 선언하는데 "int leaf, Leaf, lEaf, leAf, leaF;"등으로 선언했다면, 변수가 하고 있는 역할이 혼동이 오기 때문에 가독성에 영향을 준다. 작성력에 영향을 주는 건 다음과 같다. 대소문자를 구분하지 않으면 더욱 유연해지기 때문에 이익을 제공한다. 만약 대소문자를 구분한다면, "int Add(){}"함수를 부를시 "add()"를 사용하면 오류가 발생한다.
 위에서 가독성과 작성력에 영향을 준다는 것은, 사람이 인지를 가지고 프로그래밍을 한다면 발생하지 않을 예이다.(인위적으로 하지 않는 이상 힘들다) 그렇기에 많은 언어에서 대소문자를 구분해 주고 있다. 


4. 특별한 단어(예를 들어 예약어)

 
 - key word : 단어가 속하는 위치에 따라서 사용 여부가 달라진다.
  > ex) In FORTRAN // keyword방식으로 특별한단어 관리
          REAL와 INTEGER는 각각 실수와 정수를 선언해주는 특별한 단어이다. 그러나 다음과 같이 사용이 가능 
          REAL APPLE; // APPLE이라는 실수 변수 선언
          REAL = 3.14 ;  // REAL라는 변수에 3.14값을 저장 > REAL가 특별한 단어이지만 변수로 사용된다.
          REAL INTEGER; // 실수 타입을 같는 INTEGER변수 생성
          INTEGER REAL; // 정수 타입을 같는 REAL변수 생성 

 - reserved word : 단어가 어디에 속해도 사용이 불가능하다.
  > ex1 ) In C // "if"는 예약어로 이름으로 사용이 불가능하다. 
  > ex2 ) In COBOL // 너무많은 예약어를 지정
             우리가 프로그램 작성시 흔히 사용하는 변수명인
             length, count, bottom...등 왠만한 것이 예약어로설정되있다.
              > 이는 사용자의 작성력을 떨어 뜨린다. 

 여기서 한번 더 이야기 되는 것이 모든지에는 적당함이 필요하다-_-;;