Gforth 1.0 - 확장 가능한 문법과 멀티코어 멀티태스킹 지원

3 hours ago 5

텍스트 인터프리터의 문법을 확장해 다양한 리터럴, 어휘집 지정, 환경 변수 참조를 지원하며, 인식기(recognizer)를 추가해 해석할 문법을 확장할 수 있음 여러 코어와 하드웨어 스레드에서 멀티태스킹을 지원하며, 메시지 큐 기반 통신과 동기화, Cilk 기반 작업 분배 기능을 제공함 소스와 사용 위치 탐색, 소스 위치가 포함된 역추적, 편집기 연동 등 개발 도구 기능을 제공함 IP 갱신 최적화로 루프 중심 프로그램의 실행 속도가 2배 향상됐으며, 전체 성능은 SwiftForth와 비슷한 수준임 워드의 동작과 구현을 수정하는 기능을 확장하고 지원 안정성 기준과 대체 API를 문서화함. 다만 NEWS의 기능 목록 전체가 1.0 신규 기능은 아님 인터프리터 문법과 확장 방식 소스 코드 리터럴 지원 범위를 확장함 부동소수점 스케일 표기 6k5, 23%, 문자열 "string", 실행 토큰(xt)과 이름 토큰(nt), 본문 주소 <word>, <word+8> 등을 지원함 forth:and, assembler:and처럼 워드가 속한 어휘집을 하나 이상 지정할 수 있음 ${LANG}처럼 환경 변수 내용을 참조할 수 있음 value 및 defer 계열 워드를 별도 이름 파싱 없이 다루는 문법을 지원함 ->v는 to v, +>v는 +to v, 'v는 addr v에 대응함 @>d는 action-of d, =>d는 is d에 대응함 인식기를 추가하고 인식 순서와 변환 동작을 정의해 인터프리터를 확장할 수 있음 이름, 지역 변수, 범위, 숫자, 복소수, 문자열, 환경 변수 등을 처리하는 인식기를 제공함 before-line, before-word, line-end-hook으로 텍스트 인터프리터에 훅을 연결할 수 있음 ]] ... [[로 여러 워드를 한꺼번에 postpone할 수 있으며, 조건부/반복 컴파일과 입력 스트림 처리용 워드도 제공함 멀티태스킹과 외부 코드 연동 멀티코어 멀티태스킹을 위해 태스크 생성과 실행, 중지와 재개, 태스크별 데이터 관리 기능을 제공함 뮤텍스, 원자적 메모리 접근, 메모리 순서 제어를 지원함 메시지 큐를 통해 액터 모델과 유사한 방식으로 태스크 간 통신과 동기화를 결합할 수 있음 관련 워드는 send-event, ?events, event-loop임 Cilk로 태스크 사이에 작업을 분배할 수 있음 cilk-init, spawn, spawn1, spawn2,...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵