
Kotlin
실행
별도 정리 필요
기본
$ kotlinc hello.kt -include-runtime -d hello.jar // 독립 배포 가능
$ java -jar hello.jar
또는
$ kotlinc hello.kt // HelloKt.class 생성
$ java HelloKt
REPL
$ kotlinc-jvm or kotlin
정보
빌드
$ gradle jar
$ java -jar build/libs/example-0.1-SNAPSHOT.jar
디버깅
$ javap -c HelloKt
Compiled from "hello.kt"
public final class HelloKt {
public static final void main();
Code:
0: ldc #8 // String Hello, World!
2: astore_0
3: iconst_0
4: istore_1
5: getstatic #14 // Field java/lang/System.out:Ljava/io/PrintStream;
8: aload_0
9: invokevirtual #20 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
12: return
public static void main(java.lang.String[]);
Code:
0: invokestatic #23 // Method main:()V
3: return
}
Kotlin Worksheet는 Scratch와 달리 프로젝트에 종속적이다. Interactive Mode가 있어 초기 개발이 매우 편리하다. 사실상 REPL을 대체할 수 있다. 예전에 Swift가 XCode에서 이렇게 동작했다.
정리 필요
- abstract vs. interface
- mutableMap map.getOrPut() 자바에서는 이런걸 보지 못했는데 메소드명이 재밌다.
- DSL custom language 설계할때 필요
Kotlin Native
LLVM backend로 지원한다. 이미 kotlin이 설치된 상황에서 설치되지 않으며, cask로 설치한다. $ brew install --cask kotlin-native
기존 kotlin은 uninstall 했는데, IntelliJ는 어플리케이션 dir내에 kotlin을 탑재하고 있기 때문에 문제가 없다.
$ kotlinc-native a.kt
맥에서는 권한 문제가 발생하므로 추가 처리가 필요하다.
$ xattr -rd com.apple.quarantine /usr/local/Caskroom/kotlin-native
이외에도 최초 실행시 필요한 모듈을 ~/.konan
아래로 다운 받는다. konan은 kotlin native의 애칭이다. 컴파일은 당연히 package
가 지정되어 있으면 안되고 기본 파일명은 program.kexe
이다. 컴파일 시간이 비교적 오래 걸리는데 간단한 큐 구현 파일이 맥북에서 10초 걸렸다.
책
빅 너드 랜치의 코틀린 프로그래밍 2018, 2019
★★★☆☆
Kotlin in Action 2016, 2017
★★★★☆
저자인 Dmitry Jemerov는 코틀린 컴파일러 개발에 관여했으며 현재 제트브레인 CTO다.
Last Modified: 2023/01/26 19:50:18