개발

윈도우에 SML/NJ 설치하고 실행하기

2012. 3. 14. 15:13

출처 - https://www.smlnj.org/

SML/NJ는 Standard ML of New Jersey의 약자로 Standard ML '97 프로그래밍 언어를 위한 컴파일러이다.
관련 라이브러리, 도구와 문서를 포함하고 있으며 무료로 제공되는 오픈소스 소프트웨어다.

아래 SML/NJ 공식 사이트에서 윈도우용 SML/NJ를 받아서 설치할 수 있고
관련 문서 등 자세한 정보들을 확인할 수 있다.
공식사이트: https://www.smlnj.org/

설명을 위해 C:\sml\smlnj\ 경로에 압축을 풀었다고 가정해보자.
다음과 같이 커맨드창을 열고 환경변수와 경로를 설정한다.

c:\> set SMLNJ_HOME=c:\sml\smlnj
c:\> path %PATH%;c:\sml\smlnj;c:\sml\smlnj\bin

 

다른 사람도 그런지 모르겠지만 cmd로 열어서 실행하거나 c:\windows\system32\ 경로에서 관리자권한으로 cmd를 실행한 후
환경변수와 경로를 추가해도 커맨드창을 재실행하면 설정이 사라진다. ㅠ

이런 증상이 발생하는 경우 내컴퓨터->속성->고급시스템설정->고급->환경변수 에 들어가서
PATH에  ;c:\sml\smlnj;c:\sml\smlnj\bin 를 추가해주고
SMLNJ_HOME 변수는 새로 만들기 해서 c:\sml\smlnj 를 입력해주면 된다.

환경변수 입력을 안했거나 잘못 입력하고 sml을 실행한다면 다음과 같은 오류 메세지가 뜰 수 있다.
"지정된 경로를 찾을 수 없습니다."
"파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 틀립니다."

이제 sml.bat를 실행하면 된다.

c:\sml\smlnj> bin\sml.bat 또는
c:\> sml

실행했을 때 아래와 같이 나오면 실행 성공이다.

c:\>sml
Standard ML of New Jersey v110.58 [built: Fri Mar 03 15:32:15 2006]

 

이제 아래와 같은 형태로 소스 컴파일 명령을 수행할 수 있고, 스트럭쳐를 불러온다.
> CM.make "sources.cm";
> open structure_name;​

 

참고
uncaught exception Io [Io: openIn failed on "sources.cm", Win32TextPrimIO:openRd: failed]
라는 오류가 뜨면 파일명이 잘못되었거나 경로가 잘못되어 해당 폴더에 해당 파일이 없는 경우이다.
따라서 해당 파일이 있는 폴더 ( c:\sml\smlnj\ )로 이동한 후 sml 실행하면 해결.