프로그래밍 언어 8

[프로그래밍 언어] 롤랭

Lollang (롤랭) 롤랭 문법 https://github.com/riroan/lollang/wiki/lollang-Grammar GitHub - riroan/lollang: 롤 채팅으로 하는 프로그래밍 롤 채팅으로 하는 프로그래밍. Contribute to riroan/lollang development by creating an account on GitHub. github.com 롤랭 컴파일러 https://github.com/riroan/lollang GitHub - riroan/lollang: 롤 채팅으로 하는 프로그래밍 롤 채팅으로 하는 프로그래밍. Contribute to riroan/lollang development by creating an account on GitHub. githu..

[C++] 시간 측정 방법

C언어에서 시간을 측정할 때 time.h헤더를 사용하거나 windows.h헤더를 사용하여 시간을 측정한 기억이 있다. time은 직관적이었지만 정밀한 측정이 힘들었고, windows.h의 QueryPerformanceCounter 함수를 이용한 측정은 꽤 정밀하지만 비직관적이었다. (리눅스에서는 사용도 못한다.) C++는 보다 정밀한 측정을 기본적으로 제공한다. #include 시간의 신 크로노스(Chronos)에서 따왔다고 한다. 핵심 기능인 시간을 측정하는 코드는 다음과 같다. std::chrono::system_clock::time_point start = std::chrono::system_clock::now(); // do Something; std::chrono::duration duratio..

[C++] 난수 생성 방법

C를 먼저 공부하고 C++를 공부하는 사람이라면 난수를 생성할 때 stdlib.h(cstdlib)에 있는 rand 함수를 사용했을 것이다. rand함수를 사용하면 난수가 생성되는것 처럼 보이지만 실제로 여러번 실행해보면 같은 결과가 나온다. rand함수를 대략적으로 구성하면 다음과 같을 것이다. int myRand() { static int seed = 94263523; seed = (seed + 998244353) % (1000000007); return seed; } 여기에서 시드넘버가 일정하기 때문에 언제나 같은 수가 나올 것이고 실행해보면 난수가 생성된것 처럼 보인다. 이를 해결하기 위해 시드넘버를 현재시간 기준으로 설정하곤 한다. #include int myRand() { static int s..

[엘릭서] 3. 엘릭서 기초

엘릭서의 여러가지 자료형들에 대해서 알아보자. 정수 엘릭서는 2, 8, 10, 16진수를 사용할 수 있다. a=10 b=0b1010 c=0o123 d=0x1af 또한 파이썬과 같이 숫자사이에 _를 넣어 자릿수를 구분할 수 있다. a=1_000_000 b=1_0_0_0 # 꼭 3자리 단위로 끊을 필요는 없다. 실수 다른 언어와 마찬가지로 과학표기법을 사용하여 나타낼 수 있다. a=1.0 b=5.6123 c=1.2e5 d=6.02e-23 아톰 재미있는 변수이다. 변수이름 자체가 값이 된다. 일종의 enum역할을 대신한다고 봐도 될 것 같다. 이제 방향을 정의할때 LEFT = 1, RIGHT = 2, UP = 3, DOWN = 4 같이 개발하던 기억은 안녕... 변수 앞에 :을 붙여서 정의한다. 특히 :tru..

[엘릭서] 2. 패턴매칭

패턴매칭 엘릭서는 = 연산자 부터 다르다. 지금까지 프로그래밍하면서 대입연산자로 사용했는데 엘릭서는 대입연산자로 쓰지 않고 패턴매칭이라는 개념으로 사용한다. 일종의 assert문이라고 한다. (사실 여기서부터 어질어질했다.) a=1 list = [1,2,3] 1=a 2=a [x,y,z] = [1,2,[3,4,5]] 파이썬에서 저 순서대로 실행시킨다면 3, 4번째 줄만 에러가 날 것이다. 하지만 엘릭서는 4번줄만 에러가 난다. =연산자가 하는 일이 대입이 아니라 좌변과 우변을 매칭하는 역할을 하기 때문이다. 여기에 두가지 성질이 있다. 1. 변수가 좌변에 있으면 우변의 값을 좌변에 대입한다. 2. 좌변과 우변을 매칭할 수 있는지 확인한다. 1번은 프로그래밍에서의 =연산, 2번은 수학에서의 =연산이라고 보면..

[프로그래밍 언어] brainfuck

brainfuck(brainf**k, 브레인퍽) 브레인퍽 사용법 https://ko.wikipedia.org/wiki/%EB%B8%8C%EB%A0%88%EC%9D%B8%ED%8D%BD 브레인퍽 - 위키백과, 우리 모두의 백과사전 브레인퍽(Brainfuck)은 우어반 뮐러(Urban Müller)가 1993년 경에 만든 최소주의 컴퓨터 프로그래밍 언어이다. 이름에 포함된 fuck이 욕설이기 때문에, 정중한 표현을 위해서 때때로 Brainf*ck, Brainf***, 혹 ko.wikipedia.org 브레인퍽 온라인 컴파일러 https://www.ryugod.com/pages/ide/bf RyuGod www.ryugod.com 자체 개발 브레인퍽 컴파일러 https://github.com/riroan/bra..

[엘릭서] 1. 엘릭서 언어

예전부터 엘릭서 언어를 배워보고 싶었다. 이름이 예쁘기도 하고 함수형 프로그래밍 언어이기 때문이었는데 한국어 자료는 별로 없고 외국자료도 그렇게 많지 않았다. 지금은 아는 사람이 많지는 않겠지만 시간이 지나면 C, python같은 주류 언어가 될 수도 있을 것이다. 그럼 엘릭서 언어를 공부해보자! https://elixir-lang.org/install.html Installing Elixir Website for Elixir elixir-lang.org 우선 설치는 저 사이트에 가서 하자. 엘릭서는 파이썬같이 interactive 모드와 script 모드를 제공한다. 터미널에서 iex를 입력하면 interactive 모드를 시작한다. 또한 엘릭서의 확장자는 ex, exs이고 ex는 컴파일된 파일, ex..

[프로그래밍 언어] 엄랭

엄랭 레포 https://github.com/rycont/umjunsik-lang GitHub - rycont/umjunsik-lang: 어떻게 엄준식이 언어이름이냐🤣 어떻게 엄준식이 언어이름이냐🤣. Contribute to rycont/umjunsik-lang development by creating an account on GitHub. github.com 엄랭 온라인 컴파일러 https://www.ryugod.com/pages/ide/umm RyuGod www.ryugod.com 엄랭은 요즘 떠오르는 취업 필수 언어다. 여기저기서 엄랭을 공부하고 네카라쿠배에 취업했다는 소식을 심심찮게 들을 수 있다. 한번 학습해보자! 위 레포에 들어가면 기본적인 사용법이 써져 있다. 구조가 다음과 같다. 어떻게 ..