한글 프로그래밍 언어인 '소나무 언어'의 설계 과정에서 solidity 계약서에서 어떠한 문법이 주로 사용되며, 한글 언어로 변환되면서 solidity 언어의 어떤 부분이 간소화될 수 있을지 등을 도출하기 위해 이더리움 네트워크에 배포되어 있는 기존 계약서를 분석하고 한글 계약서와의 비교를 수행했다. 1. solidity contract 분석 1-1. 중고거래 contract contract escrow { // contract 생성자 constructor(uint _price) public payable { seller = msg.sender; // contract를 생성한 사람을 seller로 지정 price = _price; // contract 생성 시 물건 값을 받아 price에 저장 pay =..
솔리디티 스마트 컨트렉트를 만들기 위한 언어 C++, JS, Python의 영향을 받음 EVM(Ethereum Virtual Machine)을 타겟으로 함 EVM : 이더리움 노드들이 공유하는 하나의 거대한 가상 머신 스마트 컨트렉트는 수정, 삭제가 불가한 블록체인의 특성상 신중하게 작성해야 함 하지만 이 때문에 신뢰성이 보장되는 것 remix.ethereum.org → 웹 기반 솔리디티 IDE, 테스트 및 디버깅 기능 지원 솔리디티 특징 튜링 완전한 언어 두 가지 특수한 변수를 가짐 msg.sender → 메시지를 보낼 주소 , msg.value → 메시지로 보낼 값 스마트 컨트렉트 구조 contract → class와 비슷한 개념 솔리디티 데이터 타입 문자열 → string(utf8로 인코딩), by..
블록체인 말 그대로 블록들이 연결된 체인 블록? 쉽게 이야기 하면 데이터들의 집합 이러한 블록은 모든 사용자가 동일하게 가지고 있음 이를 통해 한 사용자가 다른 데이터를 가진 블록을 가지고 있다면 해당 데이터가 틀렸음을 알 수 있다. 탈중앙화? 기존의 보안은 철저히 통제된 저장소에 제한된 인원만 접근이 가능하도록 하여 성립됨 반면 블록체인은 가능한 많은 사람들이 데이터를 가지고 있도록 하여 보안을 유지 이러한 시스템에서 칩입자가 데이터를 조작하고자 하면 수많은 사람들이 가지고 있는 블록의 데이터를 모두 수정해야 하기 때문에 보안이 유지될 수 있음 암호학을 기반으로 이러한 시스템이 설계되어 있기 때문에 블록체인을 통한 보안 시스템이 신뢰받을 수 있게 됨 머클 트리 http://wiki.hash.kr/ind..
기존에 도출된 아이디어에 추가적으로 아이디어를 덧붙여본다. 1. 순 우리말로 만든 언어 + 나무 언어 한글 프로그래밍 언어 약속에서는 함수를 약속, 클래스를 묶음 등으로 표현하는 등 예약어를 한글로 번역하여 사용함. 이에 클래스를 숲, 생성자는 씨앗, 함수는 나무, 변수 선언은 잎 등으로 비유적으로 대체하여 사용하는 아이디어를 구상함. 코드를 작성하는 것에 익숙하지 않은 사용자들이 쉽게 클래스, 함수 등의 개념을 익힐 수 있을 것으로 기대함. [숲] 사람: [잎] 나이 = 20 [잎] 성별 = "남자" [씨앗] 사람(_나이, _성별): 나이 = _나이 성별 = _성별 [나무] 나이변경 (새로운나이): 나이 = 새로운나이 2. 온점 + 반점 도입 한글의 끝맺음은 보통 . (온점)이라는 사실에 기반하여 기존..
영어로 된 기존의 프로그래밍 언어는 if, else, while 등 명확한 단 하나의 예약어만을 갖음. 이에 반해 한글은 하나의 단어에도 다양한 조사가 사용될 수 있기 때문에 예약어를 하나로 지정하는 것이 애매함. 프로그래밍에 익숙하지 않은 사용자들이 처음부터 프로그래밍 언어의 구조에 맞춰 코드를 작성하는 것이 어려울 수 있다고 생각함. 한국어는 명사뒤에 은_는, 이_가 등 다양한 조사가 사용되며 변경될 가능성이 있는 문자열 변수를 출력할 때 조사를 확정해서 출력문을 작성할 수 없음. 대부분 한글 프로그래밍 언어의 주된 개발 목적은 영어에 익숙하지 않은 저학년 등의 컴퓨팅적 사고 능력 향상임. 기존의 class, function, variable, constructor 과 같은 어휘를 단순 번역할 경우 ..
한글로 된 언어 ‘ㄱ언어’를 개선하고 발전시키기 위한 아이디어를 도출함. 1. 하나의 기능에 여러 예약어 대응 영어로 된 기존의 프로그래밍 언어는 if, else, while 등 명확한 단 하나의 예약어만을 갖음. 이에 반해 한글은 하나의 단어에도 다양한 조사가 사용될 수 있기 때문에 예약어를 하나로 지정하는 것이 애매함. 따라서 하나의 기능에 해당하는 예약어를 여러 종류를 두어 보다 더 자유롭고 자연스럽게 코드를 작성할 수 있도록 함. 아래의 예시는 같은 기능을 수행하는 서로 다른 코드들의 예시를 나타냄. 만약에 [변수]가 [값] 이면 ~~~ --- 만약 [변수]가 [값] 이라면 ~~~ --- 만약 [변수]이 [값] 라면 ~~~ 변수 = 2 만약 [변수]가 사실이면 ~~~ --- 만약 [변수]가 참이면..