-
Notifications
You must be signed in to change notification settings - Fork 0
Home
업데이트: 2026-10-04.
Gooo는 프로그램의 의도와 조립 규칙을 선언하고, 생성된 코드가 어떻게 동작했는지 함께 기록하는 실험적 메타프로그래밍 언어입니다. 이 저장소에서 Go로 컴파일러를 개발하고, Gooo 전용의 작은 모델을 연결하고 있습니다.
설계도와 조립 작업장을 떠올리면 이해하기 쉽습니다. Gooo는 부품의 의미와 연결 규칙을 담은 설계도입니다. 작은 모델은 허용된 조립 순서를 제안합니다. 컴파일러가 타입과 구조를 확인해 Go 코드를 만들고, 실험 실행기가 빌드와 실행 결과를 기록합니다. 실패한 예시는 다음 시도에 전달됩니다.
시작하기 · 여러 줄 바디 작성 · 파일에서 조립·실행하기 · 실험 재현과 결과 읽기 · 언어 둘러보기 · 작은 모델과 메타프로그래밍 · 현재 상태
선언 안에 본문 조립 의도 적기에서는 본문, 한영 지시,
허용할 선택지와 확인 예시를 한 Gooo 활동에 함께 둡니다. 일반 생성 명령이 그
선언을 읽고, 작은 모델 또는 결정론적 탐색으로 조립한 뒤 실제 실행을 기록합니다.
이번 두 과제에서는 모델의 첫 선택이 더 약했으며 유한 TDD 탐색으로 제공한
예시를 충족했습니다. 이 결과와 추가 시도 비용도 공개합니다.
선택된 Gooo에는 기준 본문과 고른 경로를 함께 남깁니다. body-realize로
결과를 저장하면 그 파일을 다음 생성에 다시 사용할 수 있습니다. 두 과제에서
세 번씩 이어 생성한 기록과 저장 과정의 추가 추론 0번도 확인했습니다.
별도 Go 경로 없이 실행하기에서는 이미 설치한 도구를 찾아 소스·레시피·기대값을 바로 실행합니다. 자체 모델과 결정론적 조립 모두 같은 실행 절차를 사용하고, 고른 도구와 실제 기대값 충족 수를 기록합니다.
파일로 직접 실행하기에서 작은 원본·레시피·기대값을 바로 사용하는 예제를 추가했습니다. 자체 모델을 연결하거나 옵션을 빼서 결정론적으로 진행할 수 있습니다. 허깅페이스에서는 필요한 FP32 파일 두 개만 받아 같은 명령에 연결합니다. 실제 다운로드·생성·실행과 저장한 결과의 검산 기록을 함께 공개했습니다.
최근 설치판에는 바디 조립의 단계별 비용 읽기를 추가했습니다. 원본 확인·경로 조립·공구 확인·실제 실행·저장을 구분하고, 저장 파일의 지문으로 기록을 다시 확인합니다. 개발·main 검사와 병합, 설치본의 새 실제 실행까지 완료했습니다.
최근에는 반복 조립의 검사·실행 비용을 줄이고 있습니다. 현재 파일과 실제 동작을 다시 확인하면서 같은 Go 도구의 버전 확인을 보관합니다. 기존 한영 과제를 번갈아 실행한 반복 응답 중앙값은 79.91→63.69ms였고, 12,288/12,288 유한 기대값과 생성 Go의 일치를 유지했습니다.
코드를 여러 번 생성하고 수정하다 보면 “무엇을 만들려고 했는가”, “왜 이 경로를 골랐는가”, “어디까지 확인했는가”가 흩어집니다. Gooo는 이 내용을 프로그램과 함께 보존해 다음 작업의 입력으로 사용하려 합니다.
| 발전시키는 성질 | 현재 접근 | 확인할 지표 |
|---|---|---|
| 의도와 구현의 연결 | 선언·안정적 ID·중간 표현·생성 결과를 연결 | 원본 추적, 생성·역관측 범위 |
| 적은 자원으로 코드 조립 | 작은 로컬 모델이 허용된 후보에 순위를 부여 | 추가 시도, 모델 호출, 시간, 메모리 |
| 실패를 이용한 다음 시도 | 실제 실패 예시를 다음 판단에 전달 | 같은 예산의 완전·부분 충족률 |
| 변경을 따라가는 작업 기록 | 이전·이후 결과와 미해결 조건을 비교 | 해결·회귀·미관측 항목의 변화 |
차별점은 이 성질들이 함께 작동하도록 언어를 발전시키는 데 있습니다. 현재 수치는 Gooo 내부의 실험 조건을 비교한 결과입니다. 다른 언어와의 정량 비교에는 같은 과제, 도구 예산과 완료 기준을 준비하고 있습니다.
원본·계획·기대값 파일을 gooo body-path-run에 주면 생성된 바디를 곧바로 빌드하고
실행합니다. 입력·생성 코드·실제 결과를 폴더에 저장하므로 같은 작업을 다시 확인할 수
있습니다. 모델을 생략하면 결정론적으로 조립합니다. main 병합과 로컬 설치 뒤
한영 네 조건에서 1,024/1,024 유한 기대값을 확인했습니다. 최근 설치본의 반복 응답은
77–94ms였고, 앞선 설치본의 29–33ms도 보존했습니다. 조건·대입을 여러 줄로 직접
작성하는 문법도 main eb8477d5에 포함했습니다. 직접 작성하기.
명령·출력 읽기·측정 범위.
생성·실행 파일은 이제 다음 비교의 입력으로 이어집니다. 같은 유한 기대값의 충족 수, 조건 변화와 미해결 항목을 함께 기록합니다. 비교 명령과 읽는 순서.
초기에는 Laya에 선택지를 주어 생성 경로를 고르는 실험을 했습니다. 이후 Gooo 자료로 새로 학습한 자체 모델과 Go 추론 SDK를 개발했습니다. 2,072개 파라미터의 공유 판단기에 이어, 4,096개 파라미터·16 KiB의 전체 후보 판단기를 컴파일러에 연결했습니다. 새 모델은 두 연산의 순서를 포함한 여덟 조립 후보를 한꺼번에 비교합니다.
- 새 전체 후보 판단기로 256회 생성·512회 컴파일된 실행을 관측했습니다. 기존 개발 과제 64건에서 첫 시도 완성은 결정론 32건, 모델 52건이었고 최대 여덟 번 시도하면 양쪽 모두 64건을 완성했습니다. 후보 평가는 96→76회, 생성 시간 중앙값은 8.58→9.26ms였습니다. 추가 학습 없이 실제 연결한 결과이며 준비·로딩 비용을 줄이는 작업을 이어갑니다.
- 같은 개발용 512개 표현에서 첫 경로가 모든 제공 예시를 만족한 수는 FP32 대조군 113개, 전체 문장 조각을 사용하는 조건 368개였습니다. 이 집합은 이전에도 관측한 과제입니다.
- 앞선 공유 판단기 연결 실험은 400회 생성, 816회 모델 판단, 800회 프로그램 실행을 기록했습니다. 9,600개 유한 기대값이 일치했습니다.
- 문장 표현과 연산 순서 구분, 한국어·영어 의미 연결, 삼진 양자화의 품질 손실은 계속 다루는 문제입니다.
- 모델을 연결하지 않은 경로도 선언된 순서에 따라 결정론적으로 진행합니다.
- 최근에는 후보를 구분할 실행 입력을 시스템이 고르고, 기준 함수 관측으로 후보가 하나가 되면 바로 조립하는 경로를 구현했습니다. 최근 연구와 작은 기능에 과정과 시간·메모리 측정을 정리했습니다.
수치의 범위와 원본 자료 · 구현·공개 모델·배포 상태
| 구성 요소 | 공개 위치 | 역할 |
|---|---|---|
| 언어와 컴파일러 | meta-ontology-go | 선언, 의미 IR, 생성, 실행 계약과 관측 기록 |
| 작은 모델의 실행 | gooo-decision-runtime | 고정 배열을 이용한 Go 추론과 유한 경로 탐색 |
| 학습과 비교 실험 | gooo-neural-decision-experiments | 학습 도구, 비교 조건, 원본 기록과 재현 자료 |
| 모델 가중치 | 전체 후보 판단기 · 공유 판단기 | 각 모델의 가중치·지원 범위·실험 증거 |
- 작은 모델과 메타프로그래밍: 실제로 무엇을 선택하고 코드를 어떻게 조립하는지.
- 시작하기, 언어 둘러보기, 사용 흐름: 선언 검사부터 바디 생성까지.
- 지표와 증거: 완전성, 정확도, 확률, 시간과 메모리 읽기.
- 원리와 경계, Provenance와 결정: 의도와 결과가 연결되는 방식.
- 참고 연구: SKETCH, DeepCoder, DreamCoder, Laya, BitNet b1.58, PROV-O에서 배우는 점.
- 현재 상태, 거버넌스와 기여, 과거 기록: 구현과 개발 이력.
기존의 오류 처리 코드 생성, 수정 프로그램 작성, 수정 활동 연결 실습도 각 페이지에 고정된 소스와 실행 기록을 따라 읽을 수 있습니다.