바이트 2

SectorC: 512바이트 단위의 C 컴파일러

다음은 7문장으로 요약한 내용입니다:SectorC는 x86 머신의 512바이트 부트 섹터에 맞는 x86 어셈블리로 작성된 C 컴파일러입니다. 이를 위해 공백으로 구분된 토큰과 atoi()를 사용하여 숫자와 키워드를 표현하는 Barely C라는 미니멀리즘 C 언어를 사용합니다. 이 언어는 303바이트 내에서 재귀적 하강 구문 분석기와 코드 생성기를 구현합니다. 나머지 207바이트에서는 if/while 문, 함수, 주석, 인라인 어셈블리 등의 기능을 지원합니다. 이를 통해 I/O를 수행하고 화면에 사인파를 애니메이션으로 표시할 수 있습니다. 저자는 프로그래머가 올바른 코드를 작성할 것이라고 신뢰하는 대신 오류 처리를 우선순위에 두지 않았다고 말합니다. 전반적으로 SectorC는 창의적인 최적화를 통해 매우 ..

Hacker News 2023.05.25

메모리 할당이 어떻게 작동하는지에 대한 매우 직관적인 단계별 시각적 가이드

메모리 할당은 프로그램이 메모리를 사용하는 방식에서 필수적인 부분입니다. 프로그램은 메모리를 요청하는 malloc()과 메모리를 반환하는 free()와 같은 함수를 사용합니다. 단순 할당자는 마지막 할당이 끝난 위치만 추적하고 다음 할당을 시작하지만 메모리 누수가 발생할 수 있습니다. 더 나은 얼로케이터는 할당된 메모리와 사용 가능한 메모리를 추적하여 메모리를 해제할 수 있도록 합니다. 그러나 더 큰 요청을 충족할 수 없는 작은 여유 블록이 있는 경우 조각화가 여전히 발생할 수 있습니다. 전체 할당, 메모리 분할, 인라인 부기 등의 기술은 조각화를 줄이고 할당 효율을 높이는 데 도움이 됩니다. 전반적으로 메모리 할당은 속도, 공간 사용량, 조각화 사이의 균형을 맞춰야 하는 복잡한 작업입니다.원문: htt..

Hacker News 2023.05.23