Written by JS970
on
on
프로그래밍언어론 2023-03-23 수업정리
Flow
- 시대별 정리
- BASIC 실습(II)
Late 1950's ~ Early 1960's
- Target machine들은 일괄 처리 환경을 가지고 있었다.
- 작업 제출과 결과 수령 사이의 간격(turnaround time)이 컷다. -> 1~2days
Languages (Big - 4)
- FORTRAN(1957) - 기본적인 제어 구조 제시
- ALGOL(1958) - 블록 구조 제시
- LISP(1959) - 기호 계산
- COBOL(1960) - record
1960's
- Target machine들은 Time Sharing(시분할)환경을 가지고 있었다.
- PL/I(1964~1969) - MULTICS에서 Big-4의 기능들을 통합하는 것을 목표로 했으나 너무 복잡해서 사실상 실패
Languages
- BASIC(1964) - 교육용
- APL(1962~1967)
- Simula(1962~1967)
1970's
- Target machine들은 Mini Computer, Micro Computer였다.
- Mini Computer : PDP 11, VAX
- Micro Computer : Apple I, Apple II
- Target machine은 Operating System으로 UNIX, Apple DOS를 사용했다.
Languages
- Pascal(1971)
- C(1972)
- Prolog(1972)
- Modula(1975)
- Smalltalk(1976)
- FORTRAN 77(1978)
1980's
- Target machine들은 Personal Computer가 대상이다.
- 바야흐로 PC의 도입이 시작되었다.
- Apple Lisa(1983)
- Macintosh(1984)
- IBM PC(PC XT, AT, 386, 486, 586)
- 바야흐로 PC의 도입이 시작되었다.
Languages
- Smalltalk-80(1980)
- C with classes(1980)
- Ada83(1983)
- C++(1985, disign - 1983)
- Common LISP(1984)
- Miranda(1986)
- Perl(1987)
- Tcl(1988)
1990's ~
- 인터넷과 웹의 보급이 시작되었다.
- web : HTTP로 연결된 HTML페이지들
Languages
- 1990 : Haskell
- 1991 : FORTRAN 90, Python, Visual Basic
- 1994 : PHP
- 1995 : Ada 95, Delphi, Java, JavaScript, Ruby
- 1996 : FORTRAN 95
- 1998 : ANSI-C++(C++11, C++14, C++17, C++20)
- 1999 : ANSI-C(C99, C11)
2000년대에는 임베디드 시스템 및 가상화에 의해 도메인 특화 언어화 가상화 언어가 활성화되었다.
- 2000 : C#
- 2004 : FORTRAN 2003
- 2007 : Ada 2005 >2010년대 이전까지는 목적에 따라 언어를 설계했다. 2010년대에는 기업들이 언어를 스폰하고, 해당 언어가 널리 사용되는 경향이 있다.
- 2009 : Go(Google)
- 2011 : Kotlin(JetBrains)
- 2014 : Swift(Apple)
- 2015 : Rust(Mozilla)
BASIC 실습(II)
GOTO 행번호
- 특정 행번호로 무조건 분기
- IF문법을 사용하여 조건 분기 가능
GOSUB 행번호
- 서브루틴에 의한 프로시저 형태로 작동한다.
- GOSUB에 의해 실행되는 서브루틴이 RETURN을 만나면 복귀 지점으로 복귀한다.
LET 변수 = 값
- LET을 통해 변수를 설정하고 값을 저장할 수 있다.
- 변수는 수 혹은 문자열의 타입을 가질 수 있다.
- 문자열 타입의 변수는 변수 다음에
$
를 입력하면 된다.
INPUT 명령어
- INPUT을 통해 값을 입력받을 수 있다.
- 사실 INPUT을 사용하면 LET은 사용할 필요가 없다. 아래 코드에서 N에 키보드 입력값이 저장된다. LET에서와 마찬가지로 문자열 입력을 받고 싶다면
$
를 붙이면 된다.
10 INPUT "input number : "; N
20 INPUT "input string : "; S$
FOR
- 아래는 BASIC FOR문의 형식이다.
10 FOR VARIABLE = BEGIN TO END
20 STATEMENT
30 NEXT VARIABLE
비교연산자
- 부등식의 표기는 C언어와 동일하다.
- 동등 비교연산자는 =(같다), <>(다르다)를 사용한다.
- 참은 1, 거짓은 0으로 나타낸다.
논리연산자
- 영어로 표기한다.
- AND, OR, NOT
실습
- 아래는 행 수와 열 수를 입력받은 후 게임판을 출력하는 프로그램이다.
10 INPUT "ENTER ROW SIZE : "; ROW
20 INPUT "ENTER COLUMN SIZE : "; COL
30 FOR I = 1 TO ROW
40 GOSUB 1000
50 GOSUB 2000
60 NEXT I
70 GOSUB 1000
80 END
1000 LET S$ = "+--"
1010 FOR J = 1 TO COL
1020 PRINT S$;
1030 NEXT J
1040 PRINT "+"
1050 RETURN
2000 LET S$ = "| "
2010 FOR J = 1 TO COL
2020 PRINT S$;
2030 NEXT J
2040 PRINT "|"
2050 RETURN
- 아래는 행의 입력으로 2, 열의 입력으로 3을 입력해 Apple II Emulator에서 실행시킨 결과이다.