Skip to content

Instantly share code, notes, and snippets.

View h0tk3y's full-sized avatar
🐘

Sergey Igushkin h0tk3y

🐘
View GitHub Profile
// Uses Kotlin 1.0.4 with kotlin-reflect
fun main(args: Array<String>) {
val p = C::x
println(p.javaGetter!!.annotations.toList())
println(p.javaField!!.annotations.toList())
}
@Target(AnnotationTarget.FIELD)
annotation class MyAnnotation
group 'com.github.h0tk3y.kotlinEapFun'
version '1.0-SNAPSHOT'
buildscript {
ext.kotlin_version = '1.1-M02'
repositories {
mavenCentral()
maven { url "http://dl.bintray.com/kotlin/kotlin-eap-1.1" }
}
import com.fasterxml.jackson.core.JsonParser
import com.fasterxml.jackson.databind.DeserializationContext
import com.fasterxml.jackson.databind.JsonDeserializer
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.Module
import com.fasterxml.jackson.databind.module.SimpleModule
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory
Практика: пишем компилятор для языка с Pascal-like-синтаксисом.
В базовом языке будет:
- арифметика (expressions)
- локальные переменные с присваиванием
- чтение из стандартного потока: read(v)
- write(e)
- if e then s else t
- while e do s
- s; t;
Антон Подкопаев -- anton@podkopaev.net
Даниил Березун -- daniil.berezun@jetbrains.com
Лекции и практики, в основном домашние работы и курсовая работа (написание компилятора к концу семестра).
Компиляторы -- один из самых интересных типов языковых процессоров.
Языковой процессор обрабатывает текст на каком-то языке.
Другие варианты:
* интерпретатор;
Частичные вычисления
Интересный вид языковых процессоров.
Метавычисления -- вычисления на программах, "уровень, с которого мы смотрим на программы".
Уровень описания языков -- метаязыки. Один из метаязыков -- математика.
В.Ф. Турчин -- физик-ядерщик, основатель метавычислений, создатель языка Рефал, общей теории эволюции.
Рефал -- язык, в основе которого лежит сопоставление с образцом.
group 'com.example.myExample'
version '1.0-SNAPSHOT'
buildscript {
ext.kotlin_version = '1.1.0'
repositories {
mavenCentral()
}
dependencies {
CREATE VIEW avg_meter_cost_rent AS
SELECT rooms_number, AVG(cost / area) AS avg_meter_cost
FROM offer JOIN property USING (property_id)
GROUP BY rooms_number
WHERE kind = 'rent';
CREATE VIEW avg_meter_cost_sale AS
SELECT rooms_number, AVG(cost / area) AS avg_meter_cost
FROM offer JOIN property USING (property_id)
GROUP BY rooms_number
.text
.comm v3, 4, 4
.comm v1, 4, 4
.comm v2, 4, 4
.globl main
main:
l0:
pushl $1
l1:
popl v3
fmap :: (a -> b) -> Cont r a -> Cont r b
fmap f c = cont (\q -> runCont c (\a -> q (f a)))