
지난번에 이어, 이번에 소개할 학과는 바로 '전자공학과'입니다.

전자공학과에서는 반도체 디자인 및 디지털 시스템 설계를 위해 프로그래밍을 다룹니다.
앞에서 소개했던 과들과 달리 주로 하드웨어를 다루는 프로그래밍을 배우고 있기에,
세부 관련 학과들도 각 특징을 가진 학과들로 이루어져 있습니다.

첫 번째로 소개할 프로그래밍은 'Verilog'입니다.
베릴로그는 전자 회로 및 시스템에 쓰이는 하드웨어 기술 언어(HDL, Hardware Description Language)입니다.
회로를 설계할 때 사용하는 언어로, 하드웨어는 순차적으로 돌아가지 않고 Clock에 따라서 동시에 동작하므로
시간과 동시성을 표현할 수 있고 컴파일 과정이 일반적인 프로그래밍언어와 다르다는 특징을 가지고 있습니다.

두 번째로 소개할 프로그래밍은 'VHDL(VHSIC Hardware Description Language)'입니다.
VHDL은 하드웨어 설계를 위한 표준화된 언어로, 디지털 시스템의 동작과 구조를 기술합니다.
논리 회로부터 시스템 수준까지 다양한 디자인을 지원하며, ASIC 및 FPGA 디자인에 널리 사용됩니다.
베릴로그와 함께 전자 칩 용 프로그램을 작성하는 데 사용되는 대표적인 HDL로 뽑히고 있는데요,
두 언어의 차이점은 VHDL은 강력한 형식의 언어이고 베릴로그는 약한 타입 언어입니다.
위와 같은 특징으로 VHDL이 배우기 더 어렵지만, 높은 수준의 모델링을 돕는 구조를 갖추고 있기에
복잡한 데이터나 시스템을 프로그래밍을 할 때에는 매우 바람직합니다.
혹시 여러분들은 저급 언어에 대하여 들어본 적 있을까요?
지금부터는 하드웨어에 관련되어 직접 제어가 가능한 저급 언어에 대하여 소개해 볼까 합니다!

저급 언어에서 소개할 첫 번째는 바로 '어셈블리(Assembly)'입니다.
이는 컴퓨터의 내부적인 구조와 직접적으로 연관되어 있으며, 기계 특성과도 밀접하게 관련되어 있습니다.
이러한 어셈블리어로 만들어진 프로그램은 어셈블러(assembler)라는 번역기에 의해
컴퓨터가 이해할 수 있는 기계어 명령으로 바뀌어 실행됩니다.

두 번째 언어는 바로 '기계어'입니다.
기계어는 0과 1로만 이루어진 이진수 형태이기에 컴퓨터가 이해할 수 있는 유일한 언어입니다.
이러한 저급 언어와 함께 우리가 쉽게 접하고 있는 파이썬, c언어와 같은 고급 언어는
프로그래밍 언어를 구성하고 있는 언어입니다.
또한 고급 언어는 컴파일 혹은 인터프리터 변환 과정을 통해
저급 언어, 즉 기계어로 번역되어 CPU가 이해할 수 있게 됩니다.
이렇게 하드웨어와 관련된 여러 가지의 언어들에 대하여 살펴보았는데요,
전자 공학과 관련된 것뿐만 아니라 프로그래밍 언어의 체계에 대하여
조금은 쉽게 이해되었길 바랍니다!
