홀러리스 상수
Hollerith constantHollerith 상수는 Herman Hollerith를 기리기 위해 이름이 붙여진 것으로, FORTRAN 초기 프로그램에서는 캐릭터 데이터를 조작할 수 있도록 사용되었다.
FORTRAN 초기에는 없었다.CHARACTER
데이터 유형, 숫자 유형만.문자 조작을 수행하려면 홀러리스 상수를 사용하여 문자를 숫자 변수에 배치해야 했다.예를 들어 상수3HABC
문자열 길이를 나타내는 초기 정수로 식별되는 3자 문자열 "ABC"를 지정함3
그리고 지정된 홀러리스 문자H
, 그 다음에 문자열 데이터.ABC
. 이러한 상수는 유형이 없으므로 유형 변환 문제가 발생하지 않았다.상수가 데이터 항목에서 보유할 수 있는 문자보다 적은 문자를 지정한 경우, 문자는 왼쪽 맞춤 및 빈 칸으로 채워진 항목에 저장되었다.
역학
FORTRAN 66 표준에 의해 Hollerith 구문은 다음과 같은 용도로 허용되었다.
- 의 상수로
DATA
진술들 - 서브루틴에서 상수 실제 인수로 사용
CALL
진술들 - 다음에서 설명자 편집 방법
FORMAT
진술들
Hollerith 상수는 휴대성에 문제가 있었다.첫째, 단어 크기는 컴퓨터 시스템마다 다르기 때문에 각 데이터 항목에 넣을 수 있는 문자 수도 다양했다.구현은 단어당 2자부터 10자까지 다양했다.둘째, 한 마디로 개별 캐릭터를 휴대용 방식으로 조작하는 것이 어려웠다.이로 인해 비표준, 벤더별 특징을 이용한 이동 및 마스킹 코드가 많이 발생하였다.기계마다 캐릭터 세트가 다르다는 점도 이슈를 복잡하게 만들었다.
일부 저자들은 최상의 휴대성을 위해 데이터 항목당 하나의 문자만 사용해야 한다는 의견을 가지고 있었다.그러나 당시의 기계들의 작은 메모리 크기를 고려하면, 이 기술은 매우 낭비적인 것으로 여겨졌다.
기술적 진부화
FORTRAN 77의 주요 특징 중 하나는 다음과 같은 것이었다.CHARACTER
문자열 데이터 유형Fortran 프로그램에서 이러한 데이터 유형을 사용하면 Hollerith 상수 기법의 거의 모든 사용이 불필요하게 된다.
Hollerith 상수는 FORTRAN 77 표준에서 제거되었지만, 여전히 지원을 계속하기를 원하는 사람들을 위한 부록에 설명되어 있다.홀러리스 편집 설명자는 포트란 90을 통해 허용되었고, 포트란 95 표준에서 삭제되었다.
예
다음은 Hollerith 상수를 사용하는 FORTRAN 66 hello world 프로그램이다.이 보고서는 단어당 최소 4개의 문자가 구현에 의해 지원된다고 가정한다.
프로그램헬로원 C 정수IHWSTR(3) 데이터IHWSTR/4HHELL,4HO WO,3HRLD/ C 쓰기 (6,100) IHWSTR 스톱 100 포맷 (3A4) 끝
게다가DATA
문, 홀러리스 상수도 서브루틴 호출에서 실제 인수로 허용되었다.그러나 몇 자나 되는 글자가 전달됐는지 칼리앗이 알 길이 없었다.프로그래머는 그 정보를 명시적으로 전달해야 했다.헬로 월드 프로그램은 한 단어로 네 글자를 저장하는 기계에 다음과 같이 쓸 수 있다.
프로그램 HELLO2을 마련 WRTOUT(11HHELLO 월드, 11)정지 ENDCSUBROUTINE WRTOUT(IARRAY, NCHRS)CINTEGER IARRAYᆬ[노트 1]INTEGER NCHRS CINTEGER ICPW 데이터 ICPW/4[노트 2]INTEGER 1세, NWRDS CNWRDS)(NCHRS+ICPW-1)(6,100)(IARRAY(1세), I=1,NWRDS WRITE /ICPW)RETURN 100포맷(1.00A4)[노트 3]END
기술적으로 홀러리스 상수는 아니지만, 동일한 홀러리스 구문은 편집 설명자로 허용되었다.FORMAT
진술들헬로 월드 프로그램도 다음과 같이 쓸 수 있다.
프로그램헬로3길 쓰기 (6,100) 스톱 100 포맷 (11HHELLO 월드) 끝
가장 놀라운 특징 중 하나는 Hollerith 편집 설명자들이 입력에 사용될 때 나타나는 행동이었다.다음 프로그램은 런타임에 변경됨HELLO WORLD
입력 스트림에서 다음 11자가 될 수 있는 모든 문자를 입력하여 다음과 같이 인쇄하십시오.
프로그램What1 읽다 (5,100) 쓰기 (6,100) 스톱 100 포맷 (11HHELLO 월드) 끝
메모들
참조
- American Standard FORTRAN. American Standards Association, X3.9-1966. p. 38.
4.2.6 홀러리스 유형.Hollerith datum은 문자의 문자열이다.이 문자열은 프로세서에서 표현할 수 있는 모든 문자로 구성될 수 있다.빈 문자는 홀러리스 기준에서 유효하고 중요한 문자다.