검색 결과
"programming" · 169개 기사 · Dev/Tools
Zig Software Foundation에 추가로 40만 달러 기부 약정
Pledging another $400k to the Zig software foundation
Zig Software Foundation에 40만 달러를 추가 기부하겠다는 발표. 오픈소스 언어 생태계 지원이 이어지고 있음.
Nvidia, Rust 네이티브 GPU 프로그래밍 발표
Nvidia announces native GPU programming in Rust
Nvidia가 Rust로 GPU 커널을 작성할 수 있는 CUDA Rust 지원을 발표. 안전한 고수준 개발과 CUDA 생태계 통합을 위한 두 가지 개발 경로 제공.
Bend — 증명으로 AI 오류를 차단하고 CPU와 GPU에서 실행되는 언어
Bend – A language that blocks AI mistakes via proof, on CPU and GPU
Bend는 증명 기반 검증으로 AI가 생성한 프로그램의 오류를 방지하도록 설계된 프로그래밍 언어. CPU와 GPU 양쪽에서 실행되는 병렬 컴퓨팅을 지원.
그래, 그리고
Yes, and
소프트웨어 개발에서 기술과 접근법을 양자택일하기보다 필요에 따라 함께 활용하는 태도를 제안. 대립적 기술 담론을 넘어 실용적인 선택과 조합을 강조.
"코드가 결코 어려운 부분이 아니었다"는 모든 프로그래머에 대한 모욕이다
"Code was never the hard part" is an insult to all programmers
코딩 자체를 문제의 핵심이 아니라고 보는 주장에 반박하는 글. 프로그래밍의 복잡성과 장인성을 과소평가하지 말아야 한다는 논지.
Rust에서 Zig로의 재작성 진행 상황
How Our Rust-to-Zig Rewrite Is Going
Rust 기반 코드를 Zig로 다시 쓰는 작업의 진행 경과를 공유함. 언어 전환 과정에서의 실무적 이슈와 학습한 점을 정리함.
Music Theory for Programmers
Music Theory for Programmers
프로그래머 관점에서 음악 이론의 핵심 개념을 설명한 글. 코드, 스케일, 화음 같은 요소를 소프트웨어 사고방식으로 풀어냄.
C로 만든 현대적인 웹 앱
A Modern Web App in C
C 언어로 현대적인 웹 애플리케이션을 구현하는 과정을 소개함. 웹 서버와 요청 처리 등 앱의 주요 구성 요소를 C로 구축한 사례를 다룸.
Chicken Scheme 6.0
Chicken Scheme 6.0
Chicken Scheme 6.0 릴리스 노트 공개. Scheme 구현체의 새 버전과 변경 사항을 정리.
작지만 유용한 프로그래밍 요령
Small programming tricks
사소해 보이는 프로그래밍 기법이 코드 작성 속도와 유지보수성에 미치는 영향 정리. 반복 작업을 줄이고 개발 흐름을 개선하는 실용적 습관 소개.
Elm 1.0으로 가는 길
Road to Elm 1.0
Elm 1.0을 향한 진행 상황을 정리한 글. 빌드 속도 개선과 개발 경험 향상이 핵심 주제.
Async/Await 설계 공간 탐색
A Design Space Exploration of Async/Await
Python, Rust, JavaScript, C#, Swift 등에서 Async/Await의 실행 의미가 달라지는 9개 설계 차원을 분석. 작업 시작 방식·수명·예외 전파·취소 동작의 차이를 형식 의미론으로 설명.
컴파일러와 언어 설계 입문 (2021)
Introduction to Compilers and Language Design (2021)
컴파일러 구조와 프로그래밍 언어 설계의 기본 개념을 소개. 파싱, AST, 타입 시스템 등 핵심 주제를 단계적으로 설명함.
괄호 없이 함수를 호출하는 또 다른 방법
Yet another way to invoke functions without parentheses
제목과 URL만으로는 글의 구체적인 내용과 사용 언어를 확인하기 어려움. 함수 호출 문법을 변형해 괄호 없이 호출하는 방법을 다룬 글로 보임.
좋아, 내 텍스트 에디터를 직접 만들겠다
Fine, I'll build my own text editor
기존 텍스트 에디터에 만족하지 못한 개발자가 직접 에디터를 만들기로 한 경험담. 구현 방식과 설계 선택을 중심으로 다룸.
Julia 1.13 주요 변경 사항
Julia 1.13 highlights
Julia 1.13의 주요 성능 및 기능 개선 사항 소개. 이미지 객체를 마킹 단계에서 제외해 대형 패키지를 불러온 환경의 전체 가비지 컬렉션 속도 개선.
LLM 시대의 프로그래밍 학습
Learning Programming in an Age of LLMs
LLM이 보편화된 환경에서 프로그래밍을 배우는 방식과 기초 역량의 의미를 고찰. AI에 대한 유보적 시각을 바탕으로 학습 과정에서 직접 사고하고 코드를 이해하는 경험을 논의.
데이터베이스 프로그래밍을 다시 생각하기
Rethinking Database Programming
데이터베이스 프로그래밍의 기존 접근을 재검토하는 기술 글. 애플리케이션과 데이터 계층의 경계를 다시 설계하는 방향을 제안.
현대적 MUD로 아이에게 코딩을 가르치기
Teaching my kid to code with a modern MUD
현대식 MUD 환경을 활용해 아동에게 프로그래밍을 가르치는 경험담. 텍스트 기반 상호작용을 통해 학습 진입장벽을 낮추는 접근을 다룸.
폴더 프로그래밍 언어
The Folders Programming Language
폴더와 파일 시스템 구조를 계산 규칙으로 사용하는 실험적 프로그래밍 언어를 소개함. 디렉터리 조작과 파일 배치로 프로그램의 동작을 표현하는 에솔랭임.
Donald E. Knuth의 The Art of Computer Programming
The Art of Computer Programming by Donald E. Knuth
도널드 E. 커누스의 대표 저서 The Art of Computer Programming을 다룸. 알고리즘과 프로그래밍 이론의 고전적 참고서로서 위상을 다시 보여줌.
Tcl/Tk 9.1
Tcl/Tk 9.1
Tcl/Tk 9.1이 공개됨. Tcl 스크립팅 언어와 Tk GUI 툴킷의 기능 및 호환성을 개선한 최신 버전.
Nix가 내 디버거의 절반을 작성했다
Nix wrote half of my debugger
Nix를 활용해 디버거 구현의 상당 부분을 작성한 경험을 소개함. Nix의 구성 방식과 디버깅 도구 개발에서 맡은 역할을 살펴봄.
Mojo 1.0
Mojo 1.0
Modular이 Mojo 1.0을 공개함. AI 및 고성능 컴퓨팅용 언어의 안정화와 생태계 확장을 위한 이정표.
경쟁 프로그래머 핸드북 (2018)
Competitive Programmer's Handbook (2018) [pdf]
경쟁 프로그래밍에 필요한 알고리즘과 자료구조, 문제 해결 기법을 체계적으로 정리한 핸드북. PDF로 제공.
Logo 프로그래밍 언어
Logo Programming Language
Logo는 학습을 목적으로 설계된 Lisp 계열 프로그래밍 언어. 대화형 실행과 모듈성, 확장성, 유연한 자료형을 통해 작은 프로시저를 조합하며 프로그래밍 개념을 익히도록 구성.
Fortran 탄생 70주년 기념
Celebrating 70 Years of Fortran
Fortran 언어의 탄생 70주년을 기념하며 언어의 역사와 현재 생태계를 조명함.
Rust의 Never Type 안정화
Stabilizing Rust's Never Type
Rust의 never type인 `!`를 안정화하기 위한 설계와 언어 호환성 문제를 다룸.
Forth
Forth
xkcd의 Forth 주제 만화. 스택 기반 프로그래밍 언어의 특성을 유머로 풀어냄.
취미로 즐기는 프로그래밍
Recreational Programming
일이나 수익이 아닌 호기심과 즐거움을 위해 코드를 만드는 활동을 소개. 저부담 탐구와 창작이 프로그래밍의 직업적 소진을 줄이고 기술적 직관을 키울 수 있다고 설명.
Rust 개발자가 경험한 Zig
What Zig felt like, coming from Rust
Rust로 구현했던 JSONPath 라이브러리를 Zig로 재구현하며 두 언어의 개발 경험을 비교. Zig는 단순성과 성능이 강점이지만 수동 메모리 관리, 미성숙한 생태계, 부족한 IDE 지원이 부담으로 지적됨.
Bespoke: 부탁할 때 ‘please’라고 말하는 사람들을 위한 프로그래밍 언어
Bespoke: A programming language for people who say please
정중한 자연어 표현과 문장부호를 문법으로 사용하는 풍자적 정적 타입 프로그래밍 언어 Bespoke를 소개. 변수 선언·제어 흐름·함수 호출·오류 처리까지 예절 중심의 장황한 구문으로 설계.
Incremental – 증분 계산을 위한 라이브러리
Incremental – A library for incremental computations
증분 계산용 라이브러리 Incremental을 소개하는 글. 입력 변화가 있을 때 필요한 부분만 다시 계산해 효율을 높이는 접근.
Thinking in Python
Thinking in Python
Python을 사고방식 중심으로 설명하는 학습 자료. 언어 문법보다 문제 해결과 코드 작성 습관에 초점을 둔 콘텐츠.
병렬 프로그래밍의 선
The Zen of Parallel Programming
병렬 프로그래밍의 원칙과 설계 감각을 다룬 글. 동시성 처리와 작업 분할의 기본기를 정리한 내용.
그래픽스 프로그래머가 되기 위해 무엇을 배워야 하는가
What to learn to be a graphics programmer
그래픽스 프로그래밍 입문에 필요한 핵심 학습 주제를 정리한 글. 수학, 렌더링 파이프라인, 셰이더, GPU 최적화가 주요 축으로 보임.
Structure and Interpretation of Computer Programs 영상 강의 (1986)
Structure and Interpretation of Computer Programs Video Lectures (1986)
MIT의 SICP 영상 강의 자료를 모은 페이지. 컴퓨터 과학 기초와 함수형 프로그래밍 학습용 아카이브로 활용 가능함.
Rhombus Language 1.0
Rhombus Language 1.0
Racket 계열의 Rhombus Language 1.0이 공개됨. 언어 설계와 생태계 확장을 겨냥한 정식 릴리스.
The Rust on ESP Book
The Rust on ESP Book
Espressif의 ESP 계열 칩에서 Rust를 사용하는 방법을 다룬 공식 문서. 임베디드 개발자를 위한 학습 자료와 예제가 제공됨.
리습으로 가는 길: 어떤 Lisp
A Road to Lisp: Which Lisp
Lisp를 시작할 때 어떤 계열을 선택할지 정리한 글. 입문 경로와 각 Lisp 방언의 차이를 비교한다.
WangNet – 1.8MB, 의존성 없이 11개 언어로 Numberwang 판정
WangNet – 1.8 MB, zero-dependency Numberwang adjudication in 11 languages
WangNet이 1.8MB 크기와 외부 의존성 없는 구성으로 Numberwang 판정 기능을 제공. 11개 프로그래밍 언어로 구현된 유머성 소프트웨어 프로젝트.
안녕, 그리고 모든 Bikeshed에 감사
Goodbye, and Thanks for All the Bikesheds
오랜 기간 이어진 기술 토론과 사소한 논쟁 문화를 되짚는 회고성 글. 개발 협업의 관성과 소모를 풍자적으로 다룬다.
경험상 프로그래머들은 "reduce"를 좋아하지 않는다
Anecdotally, programmers dislike "reduce"
프로그래머들이 배열 집계 함수 reduce를 기피하는 경향과 그 원인을 고찰. 가독성과 유지보수 측면에서 반복문이나 다른 배열 연산을 선호하는 사례를 다룸.
프로그래밍은 특별하지 않다
Programming Isn't Special
프로그래밍을 다른 전문 업무와 본질적으로 구별되는 특별한 활동으로 보는 관점을 비판. 소프트웨어 개발 역시 일반적인 문제 해결과 협업의 맥락에서 이해해야 한다고 주장.
Modern OpenGL 학습을 위한 방대한 Learn OpenGL 튜토리얼
Learn OpenGL, extensive tutorial resource for learning Modern OpenGL
Modern OpenGL 학습용 튜토리얼 리소스가 소개됐다. 그래픽스 입문과 실습에 필요한 핵심 개념을 폭넓게 다룬다.
if는 위로, for는 아래로: 관용구의 대수학과 한계
Push ifs up and fors down: The idiom, its algebra, and its limits
조건문을 바깥쪽으로 끌어올리고 반복문을 안쪽으로 밀어 넣는 프로그램 변환 원리를 대수적으로 분석. 최적화가 성립하는 조건과 적용 한계를 설명.
Rust 프로그래머를 위한 C
C for Rust programmers
Rust 프로그래머 관점에서 C의 문자열, 정수형, 오류 처리, 포인터 등 주요 차이와 주의점을 정리함. C에는 Rust의 참조·차용 검사와 강제 오류 처리가 없어 프로그래머가 메모리와 오류를 직접 관리해야 함.
Zig의 Io.Threaded는 괜찮다
Zig’s Io.Threaded is neat
Zig의 Io.Threaded를 활용한 I/O 처리 방식이 간결하고 실용적이라는 기술 글. 스레드 기반 I/O 구성의 장점과 구현 감각을 정리함.
Common Lisp가 지금 최고의 프로그래밍 언어인 이유
Why Common Lisp is now the best programming language
Common Lisp의 현대적 활용 가치와 다른 프로그래밍 언어 대비 강점을 분석. 언어의 유연성과 개발 생산성을 중심으로 평가.
Everyone says assembly is untyped—everyone is wrong
Everyone says assembly is untyped—everyone is wrong
Odin의 inline assembly 설계를 통해 어셈블리도 완전히 무타입이 아니라는 주장을 제시함. 타입 정보와 제약을 통해 더 안전한 어셈블리 인터페이스를 만들 수 있다는 논점의 글.
Linux에서 Epoll vs. io_uring
Epoll vs. io_uring in Linux
Linux의 두 I/O 모델 epoll과 io_uring을 비교한 글. 이벤트 기반 처리와 최신 비동기 I/O 접근의 차이를 설명함.
Λ Snap – 어린이와 성인의 CS 학습을 위한 친근한 프로그래밍 언어
Λ Snap – An inviting programming language for kids and adults for CS study
어린이와 성인이 컴퓨터과학 개념을 학습할 수 있도록 설계된 접근성 높은 프로그래밍 언어. 교육용 프로그래밍과 개념 이해에 초점.
Odin 프로그래밍 언어 이해하기
Understanding the Odin programming language
Odin 언어의 설계와 사용법을 정리한 입문 자료가 공개됨. 시스템 프로그래밍을 겨냥한 비교적 새로운 언어의 특성과 문법을 다룸.
ACM People – Russ Cox
People of ACM – Russ Cox
ACM이 Russ Cox의 경력과 기여를 조명하는 인물 소개를 게재. 소프트웨어 생태계와 개발자 도구 분야의 영향력을 다룸.
Lisp 100줄로 만든 에이전트
An agent in 100 lines of Lisp
Lisp 100줄로 구현한 에이전트 소개. 최소한의 코드로 에이전트 동작 구조를 보여주는 예시.
The Garbage Collection Handbook: 자동 메모리 관리의 예술 2판(2023)
The Garbage Collection Handbook: The Art of Automatic Memory Management (2nd Ed) (2023)
가비지 컬렉션과 자동 메모리 관리 전반을 다룬 실무형 참고서. 2023년 2판으로 개정돼 현대 GC 기법을 정리함.
Show HN: Huzzah – AI로 코딩하는 새로운 접근
Show HN: Huzzah – a novel approach to coding with AI
AI를 활용한 코딩 방식 Huzzah를 소개하는 Show HN 글. 기존 개발 워크플로를 바꾸는 새로운 접근을 제안함.
Racket 입문
A Friendly Introduction to Racket
Racket 언어를 처음 접하는 독자를 위한 입문 글. Lisp 계열 문법과 함수형 프로그래밍의 기본 개념을 친절하게 설명함.
Paged Out #9 [PDF
Paged Out #9 [pdf]
] 프로그래밍과 해킹 주제를 다루는 Paged Out 잡지의 9호 PDF. 짧은 기술 글과 실무형 에세이를 모은 아카이브 성격의 자료.
Sega 32X에서의 Linux. 하드웨어 동기화 프리미티브가 꼭 필요한 건 아니니까?
Linux on the Sega 32X. Who needs hardware synchronization primitives anyway?
Sega 32X 같은 제한된 하드웨어에서 Linux를 구동한 실험을 다룸. 전통적인 동기화 프리미티브 없이도 시스템을 맞춰가는 저수준 이식 사례를 보여줌.
Racket v9.3
Racket v9.3
Racket 언어의 v9.3 릴리스가 발표됨. 언어 개선과 버그 수정이 포함된 정기 업데이트 소식.
프로그래머를 위한 Modern Object Pascal 입문
Modern Object Pascal Introduction for Programmers
기존 프로그래머를 대상으로 Modern Object Pascal의 문법과 주요 언어 기능을 소개. 객체 지향 개발과 실용적인 코드 작성 방식 중심으로 구성.
C 프로그래머들, 가독성에 또다시 범죄를 저지르다
C programmers commit fresh crimes against readability
C 프로그래밍의 가독성을 해치는 새 관행을 풍자한 오프비트 기사. The Register의 유머성 기사로, 코드 가독성 논쟁을 다룸.
ZX 스펙트럼용 데모신 인트로 제작하기
Writing a Demoscene Intro for the ZX Spectrum
ZX Spectrum에서 실행되는 데모신 인트로를 제작하는 과정을 소개함. 제한된 메모리와 하드웨어 성능에 맞춰 그래픽·음향 효과를 구현하는 레트로 프로그래밍 사례임.
Smalltalk의 초기 역사 (1993)
The Early History of Smalltalk (1993)
Alan Kay가 1960년대의 객체지향 아이디어부터 Xerox PARC의 Smalltalk-71·72·76·80 개발까지 초기 Smalltalk 역사를 정리. Dynabook, 그래픽 인터페이스, 객체 기반 컴퓨팅과 아동용 프로그래밍 환경의 발전 과정도 다룸.
`Foldl`과 `Foldr`의 차이
Differences Between `Foldl` and `Foldr`
Haskell의 `foldl`과 `foldr`는 목록을 각각 반대 방향으로 순회하는 것이 아니라 연산을 왼쪽 또는 오른쪽으로 결합함. 결합 방식과 지연 평가 여부에 따라 메모리 사용량, 무한 목록 처리, 재귀 동작이 달라짐.
서평: 병렬 프로그래밍은 어려운가, 그렇다면 어떻게 해야 하는가?
Book review: Is parallel programming hard, and, if so, what can you do about it?
Paul E. McKenney의 무료 병렬 프로그래밍 교재를 동시성·메모리 모델·lock-free 알고리즘을 폭넓게 다루는 실전 자료로 평가. 방대한 내용과 과도한 내부 링크 등 전자책 편집상의 단점도 지적.
Rhombus 1.1 공개
Rhombus 1.1 is now available
Racket 계열 언어 Rhombus의 1.1 버전이 출시됨. 기능과 도구 체계가 업데이트된 새 릴리스임.
Valen의 메모리 안전성: 새로운 종류의 빌림 검사
Valen's Memory Safety: A New Kind of Borrow Checking
Valen은 여러 가변 참조가 하나의 객체를 가리킬 수 있도록 그룹 빌림 기반의 빌림 검사 방식을 제안함. 함수 시그니처로 참조 무효화 조건을 전달하고, 타입 안정적인 데이터 내부 참조는 유지할 수 있음.
Show HN: UEFI 머신에서 부팅되는 BASIC interpreter를 만들었다
Show HN: I wrote a BASIC interpreter that boots on UEFI machines
UEFI 환경에서 바로 부팅되는 BASIC 인터프리터를 제작한 사례를 소개함. 레거시 언어와 펌웨어 레벨 실행의 결합이 핵심.
Solod: Go는 더 나은 C가 될 수 있다
Solod: Go can be a better C
Go를 C의 대안으로 보는 주장과 설계 관점을 다룬 글. 단순성, 안전성, 생산성을 강조하는 비교 내용.
Frame – Assembly로 만든 Linux X server
Frame – Linux X server in Assembly
Linux X server를 Assembly로 구현한 Frame 프로젝트를 소개함. 저수준 시스템 프로그래밍과 성능 최적화의 극단적 사례로 볼 수 있음.
RacketCon, 토요일 개최
RacketCon Is Saturday
Racket 프로그래밍 언어 커뮤니티의 연례 행사 RacketCon이 토요일 개최 예정. Racket 생태계의 기술 발표와 커뮤니티 교류를 중심으로 진행.
90년대의 SIMD: Intel Pentium MMX 프로그래밍
SIMD in the 90s: Programming Intel's Pentium MMX
Intel Pentium MMX에서 SIMD를 활용하던 90년대 프로그래밍 기법을 다룸. 초기 벡터 연산 최적화와 하드웨어 제약을 설명.
규칙을 우회하려 할 때 그 규칙의 이유를 이해하기
Understanding the rationale behind a rule when trying to circumvent it
규칙을 피하려는 상황에서 그 규칙이 왜 존재하는지 먼저 파악해야 한다는 취지의 글. 우회 시도보다 설계 의도와 제약의 배경을 이해하는 접근을 강조.
내 세상을 바꾼 열 줄의 코드
Ten lines of code that changed my world
저자가 직접 작성하거나 차용했던 코드 중 개인적으로 의미 있는 열 줄을 회고. 초기 Pascal 프로그램부터 문자 수를 극도로 줄인 CSS 작품까지 개발 인생의 기억을 코드로 정리.
LLM 시대에도 프로그래밍을 계속 즐기는 방법
How to keep enjoying programming in a world of LLMs
LLM이 코딩 과정을 자동화하는 환경에서도 프로그래밍의 즐거움과 학습 동기를 유지하는 방법을 논의. 도구 활용과 직접적인 문제 해결 경험 사이의 균형 조명.
메모리 안전한 컨텍스트 스위칭
Memory Safe Context Switching
컨텍스트 스위칭을 메모리 안전하게 처리하는 방법을 다룸. 저수준 전환에서의 안전성 문제와 설계 포인트가 핵심.
Show HN: Decomp Academy – GameCube 게임을 원본과 일치하는 C 코드로 디컴파일하는 법 배우기
Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
GameCube 게임을 디컴파일해 원본과 일치하는 C 코드로 복원하는 학습 플랫폼. 리버스 엔지니어링과 저수준 코드 분석을 다룸.
Julia로 배우는 미적분학
Calculus with Julia
Julia를 활용해 미적분의 그래프·수치·대수적 개념을 익히는 학습 노트. 입문 수준의 계산 예제와 자가 점검 문제를 제공함.
OCaml로 프로그래밍 배우기
Learn Programming with OCaml
OCaml을 통해 프로그래밍 기초를 배우는 학습 자료다. 함수형 프로그래밍과 언어 문법 입문에 초점이 있다.
Go에서 과도한 nil pointer 검사
Excessive nil pointer checks in Go
Go 코드에서 nil pointer 체크가 얼마나 과도해질 수 있는지 다룸. 방어적 코딩이 가독성과 유지보수성을 해칠 수 있다는 문제의식.
Rust 타입 시스템 속 Lisp
Lisp in the Rust Type System
Rust 타입 시스템 안에서 Lisp를 구현한 프로젝트 소개. 타입 레벨에서 계산과 표현력을 끌어올리는 실험적 접근이 핵심.
Lisp가 Forth를 따라가고, Forth가 Lisp를 따라가다
Lisp moving Forth moving Lisp
Lisp와 Forth의 설계 철학과 상호 영향 관계를 다룬 글. 두 언어의 재귀적 구조와 단순한 핵심 아이디어를 대비함.
C를 살리려면 ABI를 지켜야 한다 (2022)
To save C, we must save ABI (2022)
C 언어 생태계를 유지하려면 ABI 호환성을 보호해야 한다는 논지. 컴파일러·라이브러리·플랫폼 간 호환성이 장기 생존의 핵심으로 제시됨.
공간 언어: 2D로 코드를 작성하기
Spatial languages: Writing code in 2D
코드를 선형 텍스트가 아닌 2차원 공간 배치로 표현하는 개념을 다룸. 시각적 구조를 활용해 프로그램을 읽고 쓰는 새로운 인터페이스를 제안함.
C 언어의 정의되지 않은 동작 줄이기
Reducing undefined behavior in the C language
C 언어에서 예측 불가능한 결과와 보안 결함을 유발할 수 있는 undefined behavior를 줄이는 방안을 다룸. 언어 명세와 컴파일러 차원의 개선 논의를 소개.
Zig: ArrayList의 포인터 안정성
Zig: Pointer Stability for ArrayLists
Zig의 ArrayList에서 원소 포인터가 언제 안정적으로 유지되는지 다룸. 메모리 재할당과 참조 무효화 문제를 정리한 개발 노트 성격의 글임.
Clamiga: Amiga용 Common Lisp
Clamiga: Common Lisp for the Amiga
Amiga에서 동작하는 Common Lisp 구현인 Clamiga를 소개한 글. 레트로 하드웨어와 Lisp 개발 환경을 연결하는 프로젝트로 보임.
Recurse Center에서 내가 한 일
What I did at Recurse Center
필자가 Brooklyn의 프로그래밍 리트리트 Recurse Center에서 보낸 여름을 회고. 스터디 그룹, LLM 활용 프로젝트, 도구 개발과 발표 등 다양한 학습·개발 활동 정리.
Show HN: C++26 Reflection으로 구현한 아름다운 Type Erasure
Show HN: Beautiful Type Erasure with C++26 Reflection
C++26 reflection을 활용해 type erasure를 깔끔하게 구현한 프로젝트를 소개. 최신 C++ 기능으로 타입 추상화를 단순화하는 방법을 보여줌.
Mojo가 이제 오픈소스로 공개됨
Mojo is now open source!
Modular의 Mojo 언어가 오픈소스로 공개됨. 생태계 확장과 외부 기여 확대 가능성이 커짐.
NoiseLang: N=5는 Dirac delta와 같다
NoiseLang: Where N = 5 is a Dirac delta
N=5를 Dirac delta에 비유한 NoiseLang 소개. 실험적 언어 설계와 수학적 유머를 섞은 기술 글.
Born Against, 또는 취미 프로그래밍 커뮤니티가 LLM 사용에 반대하는 이유
Born Against, or why hobby programming communities are against LLM usage
취미 프로그래밍 커뮤니티에서 LLM 도구 도입을 거부하는 현상 분석. 창의성 저하와 학습 효과 감소 우려 등이 주요 원인.
존재하지 않는 날짜들 (2015)
Dates That Don't Exist (2015)
프로그래밍에서 존재하지 않는 날짜 처리의 복잡성과 함정. 윤년, 시간대 등 예외 케이스 주의.
프로그래머를 위한 논리학
Logic for Programmers
프로그래머를 대상으로 논리학의 핵심 개념을 설명하는 학습 자료. 코드와 추론에 필요한 논리적 사고를 체계적으로 다룸.
빠르고 하드한 코드
Fast and Hard Code
소프트웨어를 더 빠르고 단단하게 만드는 코드 작성 원칙을 다룬 글. 성능과 유지보수성 사이의 긴장과 실전 적용점을 짚음.
Folders - 폴더의 포함 관계와 순서로 코드를 표현하는 프로그래밍 언어
Folders - 폴더의 포함 관계와 순서로 코드를 표현하는 프로그래밍 언어
텍스트 대신 폴더의 계층과 순서로 코드를 표현하는 비텍스트 프로그래밍 언어. 폴더 이름은 알파벳순 정렬을 제외하면 코드 의미에 영향을 주지 않음.
Show HN: Petal, 마침내 무료로 쓸 수 있는 오픈소스 CoScreen/ScreenHero 대안
Show HN: Petal, 마침내 무료로 쓰는 오픈소스 CoScreen/ScreenHero 대안
Petal은 공유 화면을 데스크톱의 독립된 창처럼 표시하고 함께 조작하는 오픈소스 페어 프로그래밍 도구. 공유 창을 자유롭게 이동·크기 조절할 수 있고, 사용자 이름이 표시된 커서를 제공.
Fortran 70주년을 기념하며
Fortran 70주년을 기념하며
첫 Fortran 매뉴얼 발행 70주년을 맞아 ICCS가 12월 1일 영국 Manchester에서 기념 행사를 개최함. Fortran은 원자력 공학, 기상·기후 예측, 재료과학 분야의 핵심 기술을 70년간 뒷받침해 왔으며 현재도 활용 중임.
즐거움을 위한 프로그래밍
즐거움을 위한 프로그래밍
즐거움을 위한 프로그래밍은 업무나 수익, 외부 요구가 아닌 코딩 자체의 재미와 내적 동기를 위해 만드는 활동임. 부담 없는 탐색이 직관을 키우고 번아웃을 예방하며 장기적인 창작 동기를 되살리는 데 도움을 줌.
Show GN: 이음(ieum) — 한국어 문장으로 쓰는 프로그래밍 언어
Show GN: 이음 (ieum) - 한국어 문장으로 쓰는 프로그래밍 언어
자연어에 가까운 한국어 문장으로 코드를 작성하는 프로그래밍 언어와 IDE 확장 프로그램을 개발함. Python 호환성을 추가해 기능이 제한적인 기존 한국어 기반 언어와 차별화를 시도.
표준 C에서는 문자열의 부동소수점 변환 오류를 이식성 있게 검사할 수 없음
아, 표준 C에서는 문자열의 부동소수점 변환 오류를 이식성 있게 검사할 수 없는 모양이다
표준 C의 문자열-부동소수점 변환 오류 보고 방식은 구현과 math_errhandling 설정에 따라 달라짐. 언더플로 보고가 선택 사항이라 모든 구현에서 검출을 보장할 수 없으며, POSIX는 오버플로·언더플로 발생 시 추가 기준을 제공함.
Python 3.15 정식 출시 — 지연 임포트, 불변 딕셔너리, UTF-8 기본 인코딩 도입
Python 3.15 정식 출시 - 지연 임포트, 불변 딕셔너리, UTF-8 기본 인코딩 도입
Python 3.15.0이 UTF-8 기본 인코딩과 frozendict·sentinel 내장 타입을 도입함. 명시적 지연 임포트로 모듈 로딩을 실제 사용 시점까지 미뤄 시작 시간을 단축.
Show GN: Gooo - 작은 모델로 코드를 조립하고 이어 만드는 언어
Show GN: Gooo - 작은 모델로 코드를 조립하고 이어 만드는 언어
작은 AI 모델로 코드를 점진적으로 조립하고 미완성 상태의 진행 상황을 추적하는 언어 Gooo 개발 중. 생성된 부분과 남은 작업을 구분해 코딩을 이어가는 방식을 지향.
Rust 프로그래머를 위한 C
Rust 프로그래머를 위한 C
Rust 개발자가 C를 배울 때 직접 관리해야 하는 오류 처리, 널 종료 문자열, 포인터, 메모리 접근 책임을 설명. 컴파일러와 타입 시스템이 보장하지 않는 안전 요소를 중심으로 정리.
if는 위로, for는 아래로: 관용 패턴과 그 대수, 그리고 한계
if는 위로, for는 아래로: 관용 패턴과 그 대수, 그리고 한계
조건 분기는 호출자 쪽에, 반복문은 배치 처리 함수 내부에 배치해 제어 흐름을 중앙화하는 설계 패턴을 분석. 입력 타입과 핵심 처리 로직을 단순화하는 효과와 적용 한계를 설명.
Factor 개요
Factor 개요
Factor는 데이터 스택의 값을 워드가 소비하고 결과를 다시 쌓는 방식으로 실행되는 스택 기반 프로그래밍 언어임. 실행 가능한 코드를 값으로 취급하는 quotation을 통해 조건문·반복·부분 적용·함성을 구성.
Common Lisp이 이제 최고의 프로그래밍 언어인 이유
Common Lisp이 이제 최고의 프로그래밍 언어인 이유
LLM으로 코드 작성이 빨라지면서 개발 병목이 실행 결과를 확인하는 피드백 루프로 이동. Common Lisp은 실행 중 함수 교체와 디버깅 후 즉시 재개를 지원해 재빌드·재시작 대기 시간을 줄임.
Thoreau BASIC - BASIC이 유행에서 밀려나지 않았다면
Thoreau BASIC - BASIC이 유행에서 밀려나지 않았다면?
Thoreau BASIC은 GW-BASIC의 줄 번호와 PRINT·FOR·NEXT 문법에 현대적인 그래픽·네트워크·사운드 기능을 결합한 무료 64비트 인터프리터. Windows 프로그램으로 실행하거나 운영체제 없이 PC에서 직접 부팅 가능.
Vx - 하나의 언어로 모든 칩을 프로그래밍
Vx - 하나의 언어로 모든 칩을
CPU, GPU, NPU 등 다양한 칩을 하나의 언어로 프로그래밍하는 시스템 언어. 데이터 위치와 칩 연결 구조를 타입 시스템에 포함하고 메모리 간 이동을 명시적으로 관리.
Rust 1.99.0 발표
Rust 1.99.0 발표
Rust 1.99.0에서 "C"와 "C-unwind" ABI의 가변 인자 함수 직접 정의 기능을 추가. C의 va_list와 ABI 호환되는 VaList를 통해 인자를 처리.
타입클래스와 모듈 비교
타입클래스와 모듈 비교
타입클래스는 여러 타입에서 동일한 식별자를 재사용하는 애드혹 다형성에 초점. 모듈 시스템은 프로그램을 명시적으로 분해하고 조합하는 모듈식 추상화를 주목적으로 함.
RacketCon이 토요일에 개막
RacketCon이 토요일에 열림
제16회 RacketCon이 2026년 10월 3~4일 미국 Oakland에서 개최. 타입 추론, 저수준 프로그래밍, 매크로 등 Racket 관련 발표와 프로그램으로 구성.
1+1이 필요했는데 함수형 프로그래밍 언어를 만들었다
1+1이 필요했는데 함수형 프로그래밍 언어를 만들었다
산술식을 이진 트리로 변환하는 과제에서 출발해 C로 함수형 언어 graphLang과 그래프 축약 엔진을 구현. 산술 연산을 함수 적용으로 일반화하고 변수와 함수를 이름으로 조회 가능한 값으로 통합.
Tcl/Tk 9.1
Tcl/Tk 9.1
Tcl/Tk 9.1.0이 Tcl 명령어와 C API, Tk 접근성 및 위젯 기능을 확장. Unicode 정규화 기능과 마이크로초 해상도의 단조 시계 기반 timer 명령을 추가.
Lisp는 왜 읽기 어려울까?
Lisp는 왜 읽기 어려울까?
Lisp의 가독성 문제를 익숙함뿐 아니라 괄호 배치가 시각적 그룹화와 작업 기억에 주는 부담으로 분석. C 스타일 호출 구문과 달리 함수 이름까지 괄호 안에 배치하는 구조가 관련 요소의 인지를 어렵게 할 수 있음.
내 세상을 바꾼 코드 열 줄
내 세상을 바꾼 코드 열 줄
BASIC부터 6502 어셈블리와 POKE까지, 짧은 코드로 컴퓨터와 프로그램을 직접 제어하고 수정했던 경험을 회고. 단순한 코드 몇 줄이 프로그래밍에 대한 이해와 진로에 미친 영향을 조명.
Recurse Center에서 한 일들
Recurse Center에서 한 일들
Brooklyn의 프로그래밍 리트리트 Recurse Center에서 LLM·에이전트 학습, 프로그래밍 언어 구현, 압축 해제기 개발과 페어 프로그래밍을 진행. 에이전트 샌드박스, 소형 언어 모델, 협동 게임 등 다양한 실험도 수행.
LLM 시대에도 프로그래밍을 계속 즐기는 법
LLM 시대에도 프로그래밍을 계속 즐기는 법
코드는 직접 작성하고 LLM에는 계획 정리·조사·검토 같은 보조 작업을 맡기는 접근을 제안. 코드베이스에 대한 이해와 주도권을 유지하면서 생산성을 높이는 방식.
Show GN: Lowent – 함수 서명만으로 동작을 파악할 수 있는 시스템 프로그래밍 언어
Show GN: Lowent – 함수의 서명만 읽어도 무엇을 하는지 아는 시스템 프로그래밍 언어
Lowent는 함수 서명만으로 입력·출력과 외부에 미치는 효과를 파악하도록 설계된 시스템 프로그래밍 언어 및 컴파일러. 코드의 모호성을 줄여 사람과 AI의 분석 정확도를 높이는 것이 목표.
Z80 REPL (2018)
Z80 REPL (2018)
Z80 프로세서 환경에서 대화형으로 명령이나 코드를 입력하고 실행할 수 있는 REPL 프로젝트. 2018년에 공개된 레트로 컴퓨팅 개발 도구.
프로그래밍 언어를 제대로 설계하자! (2024)
프로그래밍 언어를 제대로 설계하자! (2024)
새 프로그래밍 언어는 여러 줄 문자열, 경로, 확장형 문법처럼 해법이 알려진 문제를 초기 설계 단계에서 처리해야 한다는 제안. 사용자 확보 이후에는 하위 호환성 때문에 구조적 결함을 수정하기 어려움.
이름 있는 인자와 선택적 인자는 정말 멋지다
이름 있는 인자와 선택적 인자는 정말 멋지다
Rust에 이름 있는 인자와 선택적 인자를 도입해 인자 순서 오류와 구조체·빌더 기반 우회 코드를 줄이자는 제안. 선택적 설정 조합마다 별도 생성 함수를 제공해야 하는 현재 API 설계의 비효율을 지적.
Bend - 증명으로 AI의 실수를 막고 GPU에서 실행되는 언어
Bend - 증명으로 AI의 실수를 막고 GPU에서 실행되는 언어
필수 조건과 수학적 증명을 코드로 작성해 AI가 생성한 구현의 요구사항 위반을 타입 검사 단계에서 차단하는 프로그래밍 언어. LAWS.bend에 규칙을, PROOF.bend에 증명을 정의하며 GPU 실행을 지원.
작은 프로그래밍 요령들
작은 프로그래밍 요령들
언어 기능, 명령어, 디버깅 단서처럼 쉽게 적용할 수 있는 작은 지식이 엔지니어링 생산성을 높인다는 내용. python3 -m http.server 등 사전 지식이 적어도 활용 가능한 실용적 요령을 소개.
LLM 시대의 프로그래밍 학습
LLM 시대의 프로그래밍 학습
LLM으로 대규모 시스템을 만든 초보 개발자가 제품화와 오류 수정 단계에서 구현 능력과 이해 수준의 격차를 마주함. 모든 추상화를 아는 것보다 현재 다루는 시스템을 점검하고 문제를 해결할 수 있는 이해력이 중요하다고 설명.
Java 27 출시
Java 27 출시
Java 27의 참조 구현인 JDK 27이 빌드 35를 프로덕션용 GA 버전으로 확정해 출시. 9개 JEP와 수백 건의 개선, 수천 건의 버그 수정이 포함됐으며 G1을 기본 가비지 컬렉터로 통일.
사고방식에 가장 큰 영향을 준 블로그 글은 무엇인가요?
여러분의 사고방식에 가장 큰 영향을 준 블로그 글은 무엇인가요?
소프트웨어 설계·제품 완성·경력·개발자 책임에 영향을 준 블로그 글을 공유하는 토론. 주요 추천 글로 Parse, Don’t Validate와 초기 Joel on Software 글 등이 언급됨.
경험상 프로그래머들은 "reduce"를 좋아하지 않음
경험상 프로그래머들은 "reduce"를 좋아하지 않음
코드 리뷰에서 map과 filter는 대체로 수용되지만 reduce는 가독성이 떨어진다는 피드백이 빈번함. 복잡한 누적 로직보다 의도가 명확한 대안을 선호하는 경향.
현실과 동떨어진 쿵푸 고수가 되지 말라 - John Carmack
현실과 동떨어진 쿵푸 고수가 되지 말라 - 존 카맥
John Carmack이 AI로 변화하는 프로그래밍 환경에서 과거의 저수준 기술에만 집착하지 말라고 조언. 기술 자체의 숙련보다 현실 문제 해결에 필요한 도구와 추상화 활용을 강조.
프로그래밍 언어의 몇 가지 좋은 아이디어
프로그래밍 언어의 몇 가지 좋은 아이디어
흐름 타이핑, 차용 검사, 계약 프로그래밍이 타입 추론과 메모리 안전성, 불변식 명시에 기여하는 방식을 소개. Crystal의 유니온 타입 추론 등 실제 언어 기능을 사례로 설명.
Λ Snap - 어린이와 성인 모두 쉽게 접근할 수 있는 컴퓨터 과학 학습용 프로그래밍 언어
Λ Snap - 어린이와 성인 모두 친근하게 접근할 수 있는 컴퓨터 과학 학습용 프로그래밍 언어
Snap!은 연령과 경험 수준에 관계없이 사용할 수 있는 프로그래밍 언어이자 컴퓨터 과학 학습 플랫폼. 웹 실행 환경과 게임·퍼즐·애니메이션 예제, 학습 자료를 제공.
젠장, 그래도 만들자
젠장, 그래도 만들자
프롬프트만으로 도구와 게임을 만드는 시대에도 결과물을 직접 만드는 과정의 가치와 즐거움은 별개라는 주장. LLM 생성 코드가 자신의 창작물처럼 느껴지지 않는 문제를 조명.
Rust, Microsoft의 Tier-1 언어로 자리매김
Rust, Microsoft의 Tier-1 언어로 자리 잡음
Microsoft가 Rust를 C++, C#, TypeScript와 함께 내부 개발용 Tier-1 언어로 운영. 로컬 개발부터 프로덕션까지 보안 도구 체인, 품질 검증, 플랫폼 통합과 SDL 준수를 지원.
Rust: 빈 타입이 바닥 타입은 아닐 때
Rust: 빈 타입이 바닥 타입은 아닐 때
Rust의 never 타입 ‘!’을 모든 타입 표기에서 허용하는 PR이 병합돼 Rust 1.100에 포함될 예정. 확장된 ‘!’의 의미는 모든 타입의 하위 타입인 바닥 타입보다 값이 없는 빈 타입으로 이해하는 것이 더 정확하다는 분석.
async/await의 설계 공간 탐색
async/await의 설계 공간 탐색
async/await의 실행 의미가 언어와 런타임마다 달라 동일한 동시성 코드가 7개 런타임에서 4가지 결과를 생성. 차이는 성능이 아닌 태스크 실행과 스케줄링에 관한 설계 선택에서 발생.
Show GN: Wave 프로그래밍 언어
Show GN: Wave 프로그래밍 언어
Wave는 C와 Rust의 영향을 받아 개발 중인 저수준 프로그래밍 언어. LLVM 백엔드를 통해 네이티브 코드로 컴파일하며 시스템 프로그래밍을 비롯한 다양한 용도를 목표로 함.
OCaml로 프로그래밍 배우기
OCaml로 프로그래밍 배우기
OCaml 입문서를 영어로 번역한 PDF와 EPUB가 공개됨. CC BY-SA 4.0 라이선스로 배포되며 The OCaml Software Foundation이 번역을 지원함.
Bespoke: ‘부탁합니다’라고 말하는 사람들을 위한 프로그래밍 언어
Bespoke: ‘부탁합니다’라고 말하는 사람들을 위한 프로그래밍 언어
정중한 요청과 감사 인사를 요구하는 정적 타입 언어 구상. 할당과 변경은 Compiler, 출력은 Output Console, 파일·런타임 작업은 Host Environment에 요청하는 식으로 예절 문법을 설계함.
Revo 프로그래밍 언어
Revo 프로그래밍 언어
파이프 기반 데이터 흐름과 오류 값을 결합한 동적 언어로, 표현식 중심 문법과 명시적 오류 처리를 지향함. 패턴 매칭과 unwrap 계열 연산으로 크래시 대신 값 중심 제어를 유도함.
Racket 친절한 입문
Racket 친절한 입문
Lisp와 Scheme 계열의 언어인 Racket 입문서. 코드와 데이터를 같은 구조로 다루고, 문제에 맞는 언어와 문법까지 직접 만들 수 있는 점을 소개함.
Python으로 사고하기
Python으로 사고하기
Python의 관용구와 패턴을 기초부터 효과 관리까지 체계적으로 익히는 온라인 도서. 정적 타이핑, 테스트, 패턴 매칭, 메타프로그래밍, 성능, 동시성까지 47개 장으로 구성됨.
Gleam의 멋진 점들
Gleam의 멋진 점들
Gleam은 deprecated, todo, generics, pattern matching, error handling을 언어 차원에서 일관되게 제공해 단순성과 가독성을 높임. 코드에 API 이전 경로와 미완성 작업을 명시적으로 남길 수 있는 점이 강점으로 소개됨.
C 대체재를 만들고 있다고 생각했지만 틀렸다
C 대체재를 만들고 있다고 생각했지만 틀렸다
C3는 단순히 C가 쓰이던 영역을 대체하는 언어가 아니라, C의 단순성과 성능에 현대적 편의성을 더한 범용 애플리케이션 언어를 지향함. C 대체재는 더 이상 OS·임베디드 중심이 아니라 새로운 범용 언어 경쟁으로 이동하고 있음.
1910년의 『프린키피아 마테마티카』가 현대적으로 읽히는 이유
1910년의 『프린키피아 마테마티카』가 현대적으로 읽히는 이유
Principia Mathematica가 참조 투명성, 타입, 자유 변수와 바인딩 변수, 치환, 스코프 같은 현대 프로그래밍 언어의 핵심 개념을 이미 다뤘다고 설명함. 명제 함수와 겉보기 변수 개념이 람다 항, 바인딩 변수, 알파 동등성, 캡처 회피 치환과 대응된다는 점을 짚음.
Python의 미리 정의된 상수는 꽤 이상함
Python의 미리 정의된 상수는 꽤 이상함
Python의 미리 정의된 상수 6개는 이름 해석과 대입 규칙이 서로 달라 일관성이 떨어짐. True, False, None, __debug__, Ellipsis, NotImplemented의 동작 차이를 정리한 글이다.
Mojo 1.0 정식 출시
Mojo 1.0 정식 출시
2023년 공개된 프로그래밍 언어 Mojo가 안정적인 프로덕션 기반의 1.0 버전에 도달함. Modular는 MAX와 Modular Cloud에서 이미 매일 사용 중이며, 이후에는 기능 추가 중심으로 1.x를 발전시킬 계획임.
Go 생태계에 기대어 만든 시스템 언어 Solod
Go 생태계에 기대어 만든 시스템 언어 Solod
Solod는 C·Go 개발자를 겨냥한 시스템 언어로, Go의 부분집합으로 설계됨. 기존 Go 도구체계를 활용하면서 전용 도구로 추가 문법 검사를 지원함.
“코드는 결코 어려운 부분이 아니었다”는 말은 모든 프로그래머에 대한 모욕이다
“코드는 결코 어려운 부분이 아니었다”는 말은 모든 프로그래머에 대한 모욕이다
AI가 프로그래밍 방식을 바꾸고 있지만 코딩을 쉽게만 보는 시각은 기술, 경험, 노력의 가치를 과소평가함. 무엇을 만들지 정하고 고객을 이해하는 일뿐 아니라 구현 자체도 여전히 복잡하고 버그가 많은 핵심 작업으로 남아 있음.
취미 프로그래밍 커뮤니티가 LLM 사용에 강하게 반대하는 이유
취미 프로그래밍 커뮤니티가 LLM 사용에 강하게 반대하는 이유
취미 프로그래밍 커뮤니티는 작동하는 결과물보다 어려운 분야를 직접 익히는 숙련 과정을 중시. LLM으로 우회해 완성품을 만드는 행위는 활동의 목적을 놓치는 것으로 받아들여짐.
Paged Out! 제9호
Paged Out! 제9호
프로그래밍, 시스템, 보안, AI, 리버스 엔지니어링, 하드웨어를 다루는 무료 실험적 기술 잡지의 최신 호. 한 기사당 한 페이지 형식으로 실전 기술 노트와 아이디어를 담음.
아이들에게 Forth를 가르쳐 본 경험
아이들에게 Forth를 가르쳐 본 경험
중·고등학생 대상 수업에서 문법보다 핵심 개념 이해를 위해 Forth를 활용한 사례. 스택 기반 동작을 직접 체험하게 해 프로그래밍 원리를 몸으로 익히도록 구성함.
Show GN: UmmLang으로 틱택토 AI를 만들어 봤습니다
Show GN: 엄랭으로 틱택토 AI를 만들어 봤습니다.
난해한 언어 UmmLang으로 틱택토 AI를 구현한 프로젝트 소개. 제한적인 제어 구조만으로 게임 로직과 AI를 구성한 사례를 공유함.
새롭게 디자인된 Elixir-lang.org
새롭게 디자인된 Elixir-lang.org
Elixir의 새 홈페이지가 개인 개발부터 대규모 팀, 단일 서버부터 글로벌 네트워크까지 확장 가능한 Erlang 기반 언어로 소개함. 불변성, 메모리 안전성, 점진적 타입 시스템을 강조함.
Lisp로 가는 길: 왜 Lisp인가
Lisp로 가는 길: 왜 Lisp인가
Lisp의 핵심은 괄호 문법이 아니라 문제에 맞게 언어를 확장하는 방식에 있음. REPL, 매크로, 코드-데이터 동형성을 익혀야 Lisp의 장점이 드러남.
양극성 LISP 프로그래머
양극성 LISP 프로그래머
Lisp의 기술적 우수성에도 불구하고 주류가 되지 못한 이유를 언어보다 Lisp 커뮤니티의 성향에서 분석한다. 뛰어난 창의성과 지성에 비해 협업, 타협, 지속적 마무리에 약한 문화가 확산을 막았다는 주장이다.
SICP 비디오 강의(1986)
SICP 비디오 강의(1986)
MIT의 SICP 전체 흐름을 20개 비디오 강의로 복습할 수 있는 자료. 1986년 Hewlett-Packard 직원 대상 강의로 진행된 아카이브 성격의 콘텐츠임.
Odin 1.0, ‘Odin 2027’로 2027년 1월 출시 예정
Odin 1.0, ‘Odin 2027’로 2027년 1월 출시 예정
Odin이 첫 정식 릴리스를 'Odin 2027'로 준비 중이며 2027년 1월 출시가 목표임. 핵심 기준은 컴파일러가 따르는 완전한 언어 명세 확립.
Jam 프로그래밍 언어
Jam 프로그래밍 언어
C 계열의 즉시성은 유지하면서 GC 없이 안전성과 낮은 학습 곡선, 고성능을 노리는 초기 단계 언어. mutable value semantics와 Rust식 drop 시스템으로 소유권과 borrow 문법 노출을 줄임.
다시 Zig로 돌아가기 - Zig → Rust → Zig
다시 Zig로 돌아가기 - Zig → Rust → Zig
Zig의 명시적 메모리 관리, 숨은 제어 흐름 없음 같은 철학이 다시 매력으로 부각됨. Rust를 대안으로 썼지만 FFI, 크로스 컴파일, 숨은 할당 같은 실무 한계로 다시 Zig를 검토하는 흐름.
컴파일러와 언어 설계 입문 교재 (2021)
컴파일러와 언어 설계 입문 교재 (2021)
Notre Dame CSE 40243 컴파일러 수업 기반의 무료 온라인 교재가 공개됨. 한 학기 분량으로 컴파일러 제작 흐름과 고급 언어를 저급 언어로 번역하는 과정을 다룸.
Show GN: 한글 GWEB 문학적 프로그래밍으로 단편을 써보세요
Show GN: 한글 GWEB 문학적 프로그래밍으로 단편을 써보세요.
Go용 문학적 프로그래밍 도구 GWEB이 한글 입력을 지원하도록 개선됨. 한글로 단편을 쓰듯 프로그램을 작성하는 쇼케이스 성격의 소개글임.
Ante: 빌림 검사와 참조 카운팅을 결합하는 새 방식
Ante: 빌림 검사와 참조 카운팅을 결합하는 새 방식
Ante는 참조 카운팅의 유연성과 빌림 검사의 안전성을 결합한 시스템 언어 접근을 제안함. shape-stability와 temporary uniq conversion으로 런타임 패닉과 독점 접근 오버헤드를 줄이려 함.
Prism: 타입 지정 효과를 갖춘 비순수 함수형 언어
Prism: 타입 지정 효과를 갖춘 비순수 함수형 언어
가변 변수, 예외, 스트림 같은 효과를 타입에 드러내면서도 외부에 관찰되지 않는 지역 변경은 순수 타입으로 유지하는 실험적 컴파일러. 대수적 효과 핸들러와 행 다형성(row polymorphism)을 핵심으로 설계됨.
Show GN: GWEB: Go를 위한 문학적 프로그래밍 도구
Show GN: GWEB: Go 언어를 위한 문학적 프로그래밍 도구
GWEB은 Donald Knuth의 CWEB을 모델로 한 Go용 문학적 프로그래밍 시스템. 하나의 .w 파일에 TeX 설명과 Go 코드를 함께 작성해 문서와 소스의 병행 관리를 지원함.
Mitchell Hashimoto, Zig 재단에 40만 달러 추가 기부 약정
미첼 하시모토, Zig 재단에 40만 달러 추가 기부 약정
Mitchell Hashimoto 가족이 Zig Software Foundation에 40만 달러를 추가 약정해 총 지원 약정액이 70만 달러로 늘어남. Zig 언어와 컴파일러 개선을 위한 장기 후원을 이어가며 개발 진척을 지지함.
AI 시대의 프로그래머: 코드 생성에서 비결정성 통제로의 역할 전환
AI 시대의 프로그래머: 코드 생성에서 비결정성 통제로의 역할 전환
AI가 코드 작성의 상당 부분을 자동화하면서 개발자의 역할이 직접 구현에서 설계·검증·통제로 이동. 모호한 요구를 구체화하고 재사용 가능한 추상으로 정리하는 능력이 더 중요해짐.
CS 6120: 고급 컴파일러 자기주도 온라인 강좌 (2020)
CS 6120: 고급 컴파일러 자기주도 온라인 강좌 (2020)
Cornell CS의 박사 수준 컴파일러 강좌를 자기주도형으로 수강할 수 있게 정리한 자료. IR, 데이터 흐름, 최적화, 병렬화, JIT, GC까지 컴파일러 핵심 주제를 체계적으로 다룸.