Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hokim98/nia_rust
Universal Task-Distributed Language written in Rust
https://github.com/hokim98/nia_rust
Last synced: about 8 hours ago
JSON representation
Universal Task-Distributed Language written in Rust
- Host: GitHub
- URL: https://github.com/hokim98/nia_rust
- Owner: HoKim98
- License: mit
- Created: 2019-01-03T07:05:33.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-02-09T06:09:28.000Z (almost 6 years ago)
- Last Synced: 2024-05-13T10:20:38.703Z (6 months ago)
- Language: Rust
- Homepage:
- Size: 79.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Universal Task-Distributed Language
```
Main:
Print! "hello world"
```
`Universal Task-Distributed Language` (이하 `NIA`)는 알고리즘을 더욱 쉽게 기술하기 위한
`범용 프로그래밍 언어`입니다.
[기존의 프로젝트 (Python)](https://github.com/kerryeon/mp)을 직접적으로 계승하였으며,
기존의 단점을 개선하고 가독성에 최대한 집중하였습니다.
많은 경우 `Rust`, `Python`과 `ML`에 영향을 받았습니다.## 언어의 특징
* 범용 프로그래밍 언어: 어떠한 프로그램도 개발 가능하도록 설계되었습니다.
* 인터프리터 언어: 소스 코드를 환경의 제약없이 실행할 수 있습니다.
* 함수형 프로그래밍 지원: 함수명과 입출력에 집중하며 프로그래밍할 수 있습니다.
* 제네릭 프로그래밍 지원: 많은 경우 타입에 집중하지 않고 프로그래밍할 수 있습니다.
* 프로토타입 기반 프로그래밍 지원: 함수는 선언을 통해 객체가 될 수 있고, 상속이 가능합니다.
* 소유권 기반 프로그래밍 지원: `Rust`의 소유자 개념을 도입했습니다.
* 인터프리터임에도 불구하고, `GC` 없이 메모리를 안전하게 관리할 수 있습니다.## 예시
1. 팩토리얼 계산
```
Factorial[]: x -> z
z: match! x <= 1
yes: 1
no:
Factorial! (x-1) -> y
x * yMain:
5 -> ?:
Factorial!
Print!```
2. `LeNet`
```
Using[]:
Deep learning:
platform: PyTorch # Tensorflow, CNTK, ...My Convolution: Convolution 2D
kernel size: 5, 5
padding: 2, 2My Pooling: Max Pooling 2D
kernel size: 2, 2LeNet: x -> x
My Convolution!
channel: 1, 32
My Pooling!
ReLU!
My Convolution!
channel: 32, 64
My Pooling!
ReLU!
Transform!
dim: ?, (64 * 7 * 7)
Dense!
dim in: ?, (64 * 7 * 7)
dim out: ?, 1024
ReLU!
Dense!
dim in: ?, 1024
dim out: ?, 10
LogSoftmax!Main:
model: LeNet
...```