분류 전체보기 22

[오늘의 프로그래밍 언어]계산을 위하여, Fortran

오늘은 오늘의 프로그래밍 언어 시리즈를 시작하기 위한 첫번재 시간인 Fortran에 대해서 소개를 해보겠습니다. Fortran에 대한 간단한 정보 이름: Fortran(Formula Translation, 수식 변환기) 목적: 과학적 계산(수치 계산 등) 설계자/개발자 존 배커스(설계, 개발) IBM(개발) 현대에서의 이용: 현대에서도 예전에 비해 줄었으나, 과학적 계산에 주로 이용되는 중 주요 구현체(컴파일러) GFORTRAN(GCC) IBM XL Fortran Open Watcom 기타 등등 주요 버전 Fortran 66(1966) Fortran 77(1977) DoD(Department of Defense, 미국 국방성) Fortran Fortran 90(1990) Fortran 95(1995) F..

[Embedded]HKEmbedded 1일차

HKEmbedded란? HKEmbedded는 저의 이름인 '현규'에서 따온 것으로, 간단하게 설명을 해보자면, 그동안은 가져다가 쓰기만 했으니까, 직접 만들어서 사용해보는 것은 어떨까라는 마인드로 만들어보았습니다. 주요 구현 MCU stm32f103: 제가 현재 가지고 있는 보드로, 테스트에 적합하다고 생각하여 선택하게 되었습니다. 구현 사항 _start(), main(), _exit()와 같은 간단한 함수들에 대한 정의 IO(type_name) 매크로 SCB 레지스터 구현 미구현 사항 링크(ld) 구현 안 해놓음 GPIO, EXTI, RCC 등 필요한 레지스터들 구현 안 됨 기타 등등 하고 싶은 말 잘 할 수 있겠죠...? 깃허브 주소 HKEmbedded Github

EMBEDDED 2021.07.20

[DGSW]해커톤 종료 및 1학기 마무리

대구소프트웨어고등학교의 해커톤이 막을 내렸습니다. 아쉽게도 이번 해커톤에서도 입상에 실패하였으나, 내적으로 많은 성장이 되어 좋았던 경험이었습니다. 오늘은 저희 팀이 진행하였던 해커톤 프로젝트를 알려드리겠습니다 공돌이의 집 저희 팀 같은 경우에는 작년과 달리, 저희 학년이 중심이 되기 때문에, 결코 평범한 작품은 하기가 싫다고 생각했습니다. 그리하여, 작년과는 달리, 이번년도에는 라즈베리파이를 이용해보고 싶다는 마음이 들게되었습니다. 결국 1학년의 아이디어인 '스마트홈'을 만들기 위하여, 라즈베리파이와 다른 센서 및 부품들을 수집하기로 하였는데 저희 같은 경우, 이러한 기능을 넣기로 하였습니다. 1. 스마트홈이니까, 사용자 편의 중심을 위하여, 선풍기와 같은 전자 제품에 대한 제어는 하나의 컴퓨터에서 처..

일상/DGSW 2021.07.17

[ADA]4. ADA 기초(3)

오늘은 Ada 기초 세번째 시간이 되겠습니다. 오늘은 Case 문과 Declarative Regions에 대해 알아보겠습니다. Case Statement Ada에서의 Case 문은 일반적인 다른 언어에서의 Case 문과 크게 다르지는 않습니다. 우선 Ada에서의 Case 구조를 알아보면, 다음과 같습니다. case is when => ... when others => -- 기타 값들 end case;기본적으로 when => 을 통하여, 만약 조건에 부합이 된다면, 진입하게 됩니다. 다른 언어와는 유일한 차이점은 바로 Ada에서의 Case 문은 굳이 break가 필요하지 않습니다. 일반적인 언어에서의 case 문에서의 반복문과 같은 성격이 아닌, if-else if-else 문의 성격에 가깝다고 생각하시면..

Ada 2021.07.12

[C]Weak Function

임베디드의 라이브러리를 파악하던 도중 특이한 것을 보았습니다. 바로 __attribute__((weak))입니다. 그동안 __attribute__는 함수에 대한 특성을 정하는 것이라고 들었을 뿐, 다른 것은 듣지 못했습니다. 그렇기에, 오늘 이에 대한 것을 알려드릴려고 합니다. Weak Function이란? Weak Function은 함수의 특성이 Weak인 것으로, 만일 같은 이름의 함수가 생성이 될 경우, __attribute__((weak))로 선언된 함수 부분은 컴파일 하였을 때, 제거가 되고, 새로 재정의된 함수가 Weak 함수의 자리를 대체합니다. 주로 임베디드 라이브러리에서도 자주 보이기도 하죠. 이를 이용한 대표적인 것이 임베디드에서의 ISR로 ISR같은 경우 함수의 특성이 weak와 al..

C-Like/C 2021.07.10

[Clojure]1. 시작

오늘은 많이 들어본 '그 언어'인 Clojure에 대해 소개해보는 시간이 되겠습니다! 그럼 한번 알아볼까요? Clojure는 무엇일까? Clojure는 Lisp 계열의 방언으로, Common Lisp와 Scheme과 같은 Lisp라는 함수형 프로그래밍 언어를 중심으로 파생되었습니다! Clojure는 Common Lisp와 Scheme과는 다른 차이점을 가지고 있습니다! 대표적으로 기존의 Common Lisp와 Scheme과 달리 JVM(Java Virtual Machine) 기반의 언어입니다. 이를 토대로 자바와의 호환이 가능함을 알 수 있습니다. 타 언어와 다르게 JVM상에서 구동이 되는 언어이기에, 서로 다른 컴퓨터라도, JVM만 존재한다면, 둘의 코드에 대한 결과는 확연한 차이가 없을..

LISP/Clojure 2021.07.08

[ADA]3.ADA 기초(2)

ADA에 대한 기초 2번째 시간입니다. 오늘은 조건문과 반복문에 대해서 간단하게 알아보겠습니다. 조건문 ADA에서의 조건문 구조는 다음과 같습니다. if then elsif then else end if 대략 이러합니다. 그럼 조건문의 구조는 알았으니, 조건문을 응용해볼까요? with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; procedure program_if is N : Integer; begin Put("Enter an Integer Value: "); Get(N); if N > 0 then Put(N); Put_Line("bigger than zero!"); end if; end program_..

Ada 2021.07.05

[ADA]2. ADA 기초(1)

해당 글에서 사용하는 개발 환경은 우분투 18.04임을 미리 밝힙니다 오늘은 저번에 에이다에 대한 짤막한 소개를 해보았습니다. 오늘은 에이다를 이용하여, 간단한 기초들을 알려드리겠습니다 위에서도 말하였듯이 저의 개발환경은 우분투(데비안) 환경임을 다시 한번 더 말씀드립니다. ADA의 컴파일러 우선 ADA를 사용하기 위해서는 당연하게도 컴파일러가 필요할 것 입니다. 그렇다면 어떤 컴파일러를 이용해야 할까요? 우선 대표적인 컴파일러는 다음과 같이 있습니다. Green Hills Software의 AdaMULTI GNU COMPILER COLLECTION의 구현체 GNAT 저 같은 경우 우선 기초를 잡는 상황이기에, GCC의 구현체중 하나인 GNAT을 이용하도록 하겠습니다. GNAT 설치 방법 sudo apt..

Ada 2021.07.04

[ADA]1.시작

본문으로 넘어가기 전.... 혹시 프로그래밍 언어 중에서 ADA를 아시나요? ADA는 비트코인의 종류로 아시는 분이 계시지만, ADA라는 프로그래밍 언어가 존재하시는지는 모를 것 입니다. 그럼 한번 알아볼까요? ADA의 목표 ADA는 1970년대 미국 국방부에서는 이러한 의견이 나옵니다. DOD: 무기를 만들어야하는데, 프로그래밍 언어가 너무 많은거 아니야? 바로 당시 무기 개발을 위해 사용하는 프로그래밍 언어가 너무 많았다는 것입니다... 결국 DOD는 이러한 프로그래밍 언어들을 하나로 통합을 시키기위하여, 개발을 하였습니다. 그리하여, ADA는 1983년 파스칼 문법을 바탕으로 한 문법과 여러 언어들의 장점을 흡수하여 통합이 되어 갈려고 하였으나... 어떠한 것이든 사용자를 편하게 하기위하여, 표준을..

Ada 2021.07.03