스크립토 6기 하진원입니다.
스크립토 방학 스터디로 마스터링 이더리움 공부하고 있습니다.
바이퍼는 EVM을 위한 프로그래밍 언어로 개발자가 읽기 쉽고 안전한 코드를 작성하기 위해 만들어졌다.
솔리디티의 기능들을 생략하여 안전성을 도모하였다.
(자유도를 낮추고 보안도를 높였다.)
변경자에서 다른 함수를 호출하는 경우 해당 함수를 파악하기가 힘들기 때문에 생략하였다.
인라인 어셈블리는 개발자가EVM에 직접적으로 접근할 수 있게 해준다.
3 0x80 mload add 0x80 mstore
가독성이 떨어지기 때문에 지원하지 않는다.
함수 오버로딩을 통해 개발자는 여러 함수를 같은 이름으로 작성할 수 있게 하고 인수를 통해 구분하게 한다.
동일한 함수를 사용하는 것은 혼란스럽기 때문에 지원하지 않는다.
암시적 형변환을 허용하지 않고 명시적 형변환을 위한 convert 함수를 제공한다.
이를 통해 정보 손실을 없애고 개발자에게 책임을 부여한다.
전제 조건, 사후 조건, 상태 변경을 명시적으로 처리한다.
이에 따라 개발자는 세가지를 고려해야 한다.
이 결과 코드의 가독성이 높아진다.
장식자는 각 함수의 시작 부분에 사용한다.
@private, @public, @constant, @payable가 있다.
함수에 의해 호출되기 이전에 호출되는 함수와 변수를 미리 선언해야 한다.
바이퍼는 유연성, 자유도를 제한하는 반면에 정확성, 보안성을 강조하는 언어이다. 이로써 개발자는 더 안전한 스마트 컨트랙트를 작성할 수 있다.