본문 바로가기
소프트웨어공학/정보처리기사

[정보처리기사 필기] 프로그래밍 언어 활용 - 프로그래밍 언어 기초와 활용

by javapp 자바앱 2022. 3. 26.
728x90

 

프로그래밍 언어 기초

 

언어 번역 프로그램

    Assembler

        일반적으로 하드웨어 제어

        저급언어(어셈블리어)를 기계어로 변환

 

    Compiler

        고급언어를 목적 프로그램으로(기계어)

        실행 시간 효율성 중시

        한꺼번에 번역

    

    Cross Compiler

        다른 기종에 맞는 기계어로 번역

 

    Interpreter 인터프리터

        직접 실행

        대화식

        반복문 불리

 

    PreProcessor

        컴파일러가 처리하기 전에 먼저 처리\ 확장된 원시 프로그래밍 생성

 

    매크로 프로세서 기본 수행

        매크로 정의 인식 - 매크로 정의 저장 - 매크로 호출 인식 - 매크로 호출 확장

 

 

프로그램 언어 해독 순서

    컴파일러 - 링커 - 로더

 

컴파일용 언어

    COBOL, FORTRAN, PASCAL..

 

스크립트 언어

        PHP, Basic, Python ...

 

인터프리터 사용’

    BASIC, PROLOG, LISP, Python

 

고급언어

    C, C++, Java, COBOL, FORTRAN ..

 

 

링커

    모두 묶어 로드 모듈이라는 실행 가능한 한 개의 기계어로 통합

    SLL : 실행되기 전

    DLL : 프로그램이 실행되면서 동적으로 링크

    Linkage Editor : 재배치 형태의 기계어로 묶어서 로드 모듈로

 

 

로더

    주기억 장치로 적재

    좁은 의미로의 로더는 적재만

    절대 로더

        할당 : 프로그래머

        연결 : 프로그래머

        재배치 : 어셈블러가 지원

        적재 : 로더

 

 

컴파일 과정

    어휘분석

        일련의 토큰들로 분할해 내는 작업

    구문 분석 Syntax

        오류 확인

    의미 분석 Semantic

    중간 코드 생성

    최적화

    코드 생성

 

 

자료 객체

    파일, 상수

    컴퓨터 저장소의 정적 + 동적

    실행 중에 여러 형의 다른 객체가 존재

    가상 컴퓨터에서 실행 시 하나 이상의 객체 묶음

 

 

변수

    하나의 기억 장치

    컴파일 시간에 한 번 정해지면 그대로 유지

    이름 값 속성 참조

    정적인 것, 동적인 것 있다.

 

 

바인딩

    프로그램에서 변수 명칭과 그 메모리 주소, 데이터 형 또는 실제 값 연결하는 것

    정적 바인딩

        프로그램 실행 시간 전에 속성을 연결

    동적 바인딩

        실행 시간

        후기 바인딩

        융통성 확보

 

 


 

프로그램 언어 활용

 

 

알고리즘

    문제를 해결하기 위하여 잘 정의된 동작의 유한 집합

    0개 이상 입력

    1개 이상 출력

    반드시 종료

    실행 가능한 연산

 

 

요구조건

    입력 출력

    유한성 Finiteness

    정확성 Definiteness

    효과성

 

 

분석하는 판단 기준

    정확성 Correctness

    간결성 Simplicity

    작업량 Amount of work done

    최적성 Optimality

 

 

설계 기법

    Divide and Conquer

    Greedy

    Backtracking

 

 

정적 분석 도구

    pmd

    cppcheck

    checkstyle

    SonarQube

 

 

동적 분석 도구

    Avalanche

    valgrind

 

 

이스케이프 시퀀스

    \n : New line

    \t : tab

    \b : backspace

    \r : Home, 처음으로

 

 

C 언어

    “%7.3s” : 7칸 확보 , 오른쪽 부터, 3자리 끊어서

    “%-7.1f” : 7칸 확보, 왼쪽부터, 소수점 이하 2번째 자리에서 반올림해서 1자리만

 

 

비트 논리 연산자

    & : AND | : OR

    ^ : XOR

    ~ : NOT

 

 

상수는 문자열 끝에 “\0”

첫 글자 _ 사용 가능 : 영문 취급

문자열 상수 시작 번지는 포인터 상수

배열명은 그 배열의 시작 번지이며, 상수이다.

 

 

프로그램 연산자 순서

    괄호 ()

    산술 +

    쉬프트 << . 연산순서 오ㅡ>왼

    관계 ==

    논리 &

 

()+<≤==&     ( 이렇게 외우면 재밌음 )

 

 

 

 

 

 

댓글