References
해럴드 에이블슨, 제럴드 제이 서스먼, 마틴 헨즈, 토비아스 브릭스타드, and 줄리 서스먼. 2022. 자바스크립트로 배우는 SICP : 컴퓨터 프로그램의 구조와 해석. Translated by 류광. https://www.yes24.com/Product/Goods/116469364.
“Beyond Sicp—Design and Implementation of a Notional Machine for Scheme.” n.d. Accessed January 20, 2025. https://arxiv.org/html/2412.01545v1.
“#Sicpjs #Sicp Source Academy.” n.d. Accessed November 18, 2024. https://sourceacademy.org/sicpjs/.
“#Sicp #Sicpjs Comparison Edition.” n.d. Accessed November 18, 2024. https://sicp.sourceacademy.org/index.html.
“#Sicp #Sicpjs Source-Academy/Sicp Wiki.” n.d. Accessed November 18, 2024. https://github.com/source-academy/sicp/wiki.
“Using Sicp Js with the Ide of Your Choice.” n.d. Source Academy. Accessed January 20, 2025. https://about.sourceacademy.org/package/.
@류광 번역 이야기 기술 - 오탈자
히스토리 - SICPJS 넘어야 할 산
- 다시 왔어.
- ?!
- 아니다. Racket 이나 Clojure 로 봐야 한다. 그것도 나중에.
- 근데 말이야. 나중에 봐야겠어요
소스아카데미 프로젝트 홈페이지
https://github.com/source-academy
자바스크립트로 배우는 SICP
(해럴드 에이블슨 et al. 2022)
- 해럴드 에이블슨 and 제럴드 제이 서스먼 and 마틴 헨즈 and 토비아스 브릭스타드 and 줄리 서스먼 류광
- 모든 프로그래머는 마법사다난해한 프로그래밍 언어로 만들어진 컴퓨터 프로그램. 프로그램은 일정한 패턴을 따라 주어진 과제를 해결해 나간다. 즉, 프로그래머는 프로그램이라는 주문을 외워 컴퓨터에 깃든 영혼을 부리는 마법사인 셈이다. 여기 모든 마법사를 위한 마법사…
제1장 함수를 이용한 추상화
1 Building Abstractions with Procedures / Functions
1.1 프로그래밍의 기본 요소
- 1.1.1 표현식
- 1.1.2 이름 붙이기와 환경
- 1.1.3 연산자 조합의 평가
- 1.1.4 복합 함수
- 1.1.5 함수 적용의 치환 모형
- 1.1.6 조건부 표현식과 술어
- 1.1.7 예제: 뉴턴 방법으로 제곱근 구하기
- 1.1.8 블랙박스 추상으로서의 함수
1.2 함수와 과정(함수가 생성하는)
- 1.2.1 선형 재귀와 반복
- 1.2.2 트리 재귀
- 1.2.3 증가 차수
- 1.2.4 거듭제곱
- 1.2.5 최대공약수
- 1.2.6 예제: 소수 판정
1.3 고차 함수를 이용한 추상의 정식화
- 1.3.1 함수를 받는 함수
- 1.3.2 람다 표현식을 이용한 함수 구축
- 1.3.3 일반적 방법으로서의 함수
- 1.3.4 함수를 돌려주는 함수
제2장 데이터를 이용한 추상화
2.1 데이터 추상화
- 2.1.1 예제: 유리수 산술 연산
- 2.1.2 추상화 장벽
- 2.1.3 데이터란 무엇인가?
- 2.1.4 심화 연습문제: 구간 산술
- 2.2 위계적 데이터와 닫힘 성질
- 2.2.1 순차열의 표현
- 2.2.2 위계적 구조
- 2.2.3 합의된 인터페이스로서의 순차열
- 2.2.4 예제: 그림 언어
2.3 기호 데이터
- 2.3.1 문자열
- 2.3.2 예제: 기호 미분
- 2.3.3 예제: 집합의 표현
- 2.3.4 허프먼 부호화 트리
2.4 추상 데이터의 다중 표현
- 2.4.1 복소수의 여러 표현
- 2.4.2 태그된 데이터
- 2.4.3 데이터 지향적 프로그래밍과 가산성
2.5 일반적 연산을 갖춘 시스템
- 2.5.1 일반적 산술 연산
- 2.5.2 형식이 서로 다른 데이터 객체들의 결합
- 2.5.3 예제: 기호 대수
제3장 모듈성, 객체, 상태
3.1 배정과 지역 상태
3.1.1 지역 상태 변수 3.1.2 배정 도입의 이득 3.1.3 배정 도입의 비용 3.2 평가의 환경 모형 3.2.1 평가 규칙들 3.2.2 간단한 함수 적용의 예 3.2.3 지역 상태 저장소로서의 프레임 3.2.4 내부 선언 3.3 변경 가능 데이터를 이용한 모형화 3.3.1 변경 가능 목록 구조 3.3.2 대기열의 표현 3.3.3 테이블의 표현 3.3.4 디지털 회로 시뮬레이터 3.3.5 제약의 전파 3.4 동시성: 시간은 필수요건이다 3.4.1 동시적 시스템에서 시간의 본질 3.4.2 동시성 제어 메커니즘 3.5 스트림 3.5.1 지연 평가를 이용한 스트림 표현 3.5.2 무한 스트림 3.5.3 스트림 패러다임의 활용 3.5.4 스트림과 지연 평가 3.5.5 함수형 프로그램의 모듈성과 객체의 모듈성
제4장 메타언어적 추상화
4.1 메타순환적 평가기
4.1.1 평가기의 핵심부
4.1.2 구성요소의 표현
4.1.3 평가기의 자료 구조들
4.1.4 평가기의 실행
4.1.5 프로그램으로서의 데이터
4.1.6 내부 선언들
4.1.7 구문 분석과 실행의 분리
4.2 느긋한 평가
4.2.1 정상 순서와 적용적 순서
4.2.2 느긋한 평가를 이용하는 해석기
4.2.3 느긋한 목록으로서의 스트림
4.3 비결정론적 컴퓨팅
4.3.1 검색과 amb
4.3.2 비결정론적 프로그램의 예 몇 가지
4.3.3 amb 평가기의 구현
4.4 논리 프로그래밍
4.4.1 연역적 정보 검색
4.4.2 질의 시스템의 작동 방식
4.4.3 논리 프로그래밍과 수리논리학의 관계
4.4.4 질의 시스템의 구현
제5장 레지스터 기계를 이용한 계산
5.1 레지스터 기계의 설계
5.1.1 레지스터 기계의 서술을 위한 언어
5.1.2 기계 설계의 추상들
5.1.3 서브루틴
5.1.4 스택을 이용한 재귀 구현
5.1.5 명령 요약
5.2 레지스터 기계 시뮬레이터
5.2.1 기계 모형
5.2.2 어셈블러
5.2.3 명령과 명령 실행 함수
5.2.4 기계 성능의 감시와 측정
5.3 저장소 할당과 쓰레기 수거
5.3.1 벡터 구조로 표현된 메모리
5.3.2 무한 메모리라는 환상의 유지
5.4 명시적 제어 평가기
5.4.1 디스패처와 기본 평가 서브루틴
5.4.2 함수 적용의 평가
5.4.3 블록, 배정, 선언
5.4.4 평가기의 실행
5.5 컴파일
5.5.1 컴파일러의 구조
5.5.2 구성요소들 컴파일
5.5.3 함수 적용과 반환문의 컴파일
5.5.4 명령렬들의 조합
5.5.5 컴파일된 코드의 예
5.5.6 어휘순 주소 접근
5.5.7 컴파일된 코드와 평가기의 연동
#sicp #sicpjs comparison edition 문서화 도구 빌드
(“#Sicp #Sicpjs Source-Academy/Sicp Wiki” n.d., n.d.) (“#Sicpjs #Sicp Source Academy” n.d.)
여기에 넣어야 하는구나. 잠시만.
빌드 잘 된다.
- Immersive experiential environment for learning programming, developed in the School of Computing at the National University of Singapore.
- use g++11
sudo apt install latexmk
# aliases python to python3 for gyp
sudo apt install python-is-python3
# Everything we need to build gl and gl-headless
sudo apt install -y build-essential g++-11 libxi-dev libxext-dev libpixman-1-dev libcairo2-dev libpango1.0-dev libjpeg8-dev libgif-dev libjpeg-dev librsvg2-dev mesa-common-dev
# Yarn install with G++10.
CXX=g++-11 yarn install
관련링크
#sicpjs #sicp Source Academy :
(“#Sicpjs #Sicp Source Academy” n.d.)
- Immersive experiential environment for learning programming, developed in the School of Computing at the National University of Singapore.
#sicp #sicpjs source-academy/sicp Wiki
(“#Sicp #Sicpjs Source-Academy/Sicp Wiki” n.d.)
#sicp #sicpjs comparison edition
(“#Sicp #Sicpjs Comparison Edition” n.d.)
Using SICP JS with the IDE of your choice :
(“Using Sicp Js with the Ide of Your Choice” n.d.)
- Info on Source Academy for learners, educators, developers, and researchers
Beyond SICP—Design and Implementation of a Notional Machine for Scheme :
(“Beyond Sicp—Design and Implementation of a Notional Machine for Scheme” n.d.)