비주얼 워크스
VisualWorks![]() |
VisualWorks는 Smalltalk 언어의 크로스 플랫폼 구현입니다.시스템 이미지에 포함된 소프트웨어 객체의 동적 집합인 "이미지"를 기반으로 한 개발 시스템으로 구현됩니다.
VisualWorks의 계보는 Xerox PARC에 의한 최초의 Smalltalk-80 구현으로 거슬러 올라간다.1980년대 후반, Smalltalk-80 개발자들은 상용 제품으로 Smalltalk-80을 더욱 개발하기 위해 ParcPlace Systems를 분사했다.이 상용 제품은 처음에는 ObjectWorks, 그 다음에는 VisualWorks로 불렸다.1999년 8월 31일, VisualWorks 제품은 Cincom에 매각되었습니다.VisualWorks는 Windows, Mac OS X, Linux 및 Unix의 여러 버전을 포함한 많은 운영 체제에서 실행됩니다.
VisualWorks는 내장된 멀티 플랫폼 기능 때문에 크로스 플랫폼 개발 프로젝트를 지원합니다.예를 들어 GUI 응용 프로그램을 한 번만 개발하면 다른 위젯 스타일로 전환할 수 있습니다.VisualWorks 애플리케이션은 지원되는 모든 플랫폼에서 변경 없이 실행할 수 있습니다.가상 시스템만 플랫폼에 종속됩니다.
장점과 단점
VisualWorks는 개발하려는 프로그램이 실행되는 동안에도 개별 메서드를 컴파일할 수 있기 때문에 매우 빠른 애플리케이션 개발을 가능하게 합니다.Smalltalk 메서드를 컴파일하는 데 보통 1초도 걸리지 않지만 C++ 프로젝트에서 같은 작업을 수행하는 데 1분 이상 걸리는 경우가 많아 프로세스를 재시작하지 않으면 쉽게 실행할 수 없습니다.VisualWorks의 다양한 코드 브라우저는 개발자가 원하는 클래스나 메서드를 빠르게 찾을 수 있도록 도와줍니다.
Smalltalk 프로그램의 퍼포먼스와 throughput은 자주 사용하는 타입에 특화된 머신 코드를 생성함으로써 저스트 인 타임 컴파일러를 사용하여 C++, Fortran, Pascal 또는 Ada와 같은 정적 언어의 퍼포먼스에 근접할 수 있지만 정확한 메모리 레이아웃의 이점을 얻는 수치 처리 및 프로그램은 여전히 느리게 실행될 수 있습니다.생성 가비지 콜렉터는 대부분의 수집 일시 중지를 최소화하지만 완전한 수집이 긴 경우 힙 크기에 비례하여 수십 밀리초에서 수백 밀리초 정도 월드가 정지될 수 있으므로 하드 실시간 및 결정론 요건에 적합하지 않을 수 있습니다.그러나 가비지 수집은 객체 지향 언어의 수동 메모리 관리보다 선호되며 프로그래머는 가비지 수집이 발생하는 시기와 시간을 제어하기 위해 다양한 작업을 수행할 수 있습니다. 따라서 대부분의 경우 가비지 수집은 문제가 되지 않습니다.
인스톨
VisualWorks 시스템의 모든 컴포넌트는 설치된 시스템의 버전 번호를 딴 Program Files\Cincom 디렉토리에 Windows 7 이후에 설치됩니다.예를 들어 다음과 같습니다.vw7.5nc
이 디렉토리에는 bin, doc, example 등의 서브 디렉토리가 다수 포함되어 있습니다.
VisualWorks는 논리명을 가진 버튼이 있는 3개의 버튼 마우스를 상정하고 있습니다.<Select>
,<Operate>
,그리고.<Window>
단, Ctrl, Option 또는 Command 키와 함께 버튼 마우스를 하나 또는 두 개 사용할 수 있습니다. <Select>
임의의 인터페이스 개체를 선택합니다. <Operate>
현재 보기/보기의 조작 메뉴가 나타납니다. <Window>
VisualWorks 창에서 작업(이동, 닫기...)을 시작합니다.
파일 입력 형식
파일 입력 형식은 클래스를 텍스트 파일로 나타내기 위한 원래 Smalltalk 형식입니다.이러한 파일은 VisualWorks IDE에 "프로파일인"하여 Smalltalk 이미지에 아직 포함되지 않은 클래스를 생성할 수 있습니다.모든 파일 입력 문서는 Smalltalk 클래스의 간단한 텍스트 표현을 텍스트 파일로 제공합니다..st
서픽스VisualWorks에서 계속 지원되지만 구획 메커니즘으로 대체되었습니다.샘플 서브디렉토리에 파일 입력 형식의 예가 있습니다.
소포
구획은 패키지의 외부 파일 표현입니다.
예제 탐색기는 예제 디렉토리에서 구획으로 제공됩니다.이미지 시작 [1]시 구획 로드를 지정하는 여러 이미지 레벨 스위치를 사용할 수 있습니다.구획 경로는 VisualWorks가 구획을 찾는 디렉토리 목록입니다.시스템 설정 도구를 사용하여 설정할 수 있습니다.
소포는 VisualWorks의 컴포넌트 기술을 제공합니다.패키지 및 번들은 코드를 구성하고 소포의 내용을 모델링합니다.소포는 패키지/번들을 게시하여 작성됩니다.VisualWorks 영역에서 컴포넌트라는 용어는 특정할 필요가 없는 경우 구획, 패키지 및 번들을 가리키는 데 사용됩니다.
적재 시 구획 코드의 구성은 구획 코드의 작성에 따라 결정됩니다.패키지를 게시하여 생성한 경우 동일한 패키지에 로드됩니다.번들로 작성된 경우 번들 또는 하나의 패키지로 새로고침할 수 있습니다.
패키지의 로드 시퀀스는 다음과 같습니다.
- 모든 필수 구성 요소가 로드됩니다.
- 정의된 프리로드 액션이 실행됩니다(예: 미신고 변수 초기화).
- 패키지의 개체가 설치됩니다.
- 패키지의 모든 클래스는 Load: the Package 및 실행된 모든 액션 후에 메시지가 전송됩니다.이것은 많은 경우 어플리케이션의 기동입니다.
구획관리자
구획 관리자는 구획 경로에서 모든 구획을 로드 및 언로드하는 데 사용됩니다.제안 보기에는 주요 추가 구획이 포함된 카테고리가 나열됩니다. 카테고리를 선택하면 권장 구획 목록이 표시됩니다.예를 들어 UI Paker는 Essentials 범주에 있습니다.제안 보기 외부에서 구획을 찾기 위한 구획 경로의 디렉토리 트리 뷰도 있습니다.로드된 뷰에는 이미지에 이미 있는 모든 구획이 나열됩니다.적재된 소포만 볼 수 있습니다.
지원되는 VisualWorks 제품 패키지는 패키지처럼 보이는 아이콘으로 표시됩니다.다른 상인들의 소포는 쇼핑백처럼 보인다.Smalltalk 클래스 개발의 복잡한 역사 때문에 이것은 매우 유용할 수 있다.예를 들어 구획 아이콘은 이제 Arbor 하이퍼텍스트 시스템이 VisualWorks를 지원함을 나타냅니다.
애플리케이션에서 프로그래밍 방식으로 구획을 로드 및 언로드할 수도 있습니다.
패키지
소포가 적재되면 패키지 또는 패키지 묶음으로 구성됩니다.패키지에서 로드된 코드를 찾을 때 시스템 브라우저에서 동일한 이름의 번들 또는 패키지를 찾을 수 있습니다.패키지는 클래스를 구성 요소에 따라 관련 그룹으로 구성하는 범주입니다.패키지는 번들로 그룹화할 수 있습니다.패키지 및 번들은 패키지로 저장(게시)하거나 소스 코드 저장소에 저장할 수 있습니다.
코드 라이브러리 로드 중
첫 번째 visual.im 이미지에는 기본적인 클래스 라이브러리를 사용하여 최소한의 개발 설비가 포함되어 있습니다.추가 클래스 라이브러리는 VisualWorks 또는 타사 공급업체에 의해 일반적으로 구획 파일로 제공됩니다.대부분의 비 Smalltalk 개발 환경에서 코드 라이브러리는 include 명령을 사용하여 컴파일 시 Import됩니다.Smalltalk에서는 코드 라이브러리가 실행 중인 시스템에 로드되어 환경의 일부가 됩니다.예를 들어 UI Panker가 구획으로 로드됩니다.
VisualWorks 런처
보통 런처라고 불리는 VisualWorks 런처는 VisualWorks 시스템의 제어 센터입니다.이것은 모든 주요 도구의 발판입니다.
스몰톡의 기본
Smalltalk는 순수한 객체 지향 프로그래밍 언어이며, 이것은 Smalltalk 내에서 어떤 일이 일어나게 하는 유일한 방법은 객체에 메시지를 보내는 것이라는 것을 의미합니다.VisualWorks는 Smalltalk-80 언어를 표준으로 사용하지만 자체 클래스 및 메서드 세트를 제공합니다.따라서 Object와 같은 기본 클래스도 Squak이나 Dolphin Smalltalk와 같은 다른 Smalltalk-80 IDE와 다릅니다.여기서 설명하는 예는 VisualWorks Smalltalk에서는 동작하지만 클래스나 메서드가 다를 수 있기 때문에 다른 Smalltalk에서는 동작하지 않을 수 있습니다.
Smalltalk 코드 참조 및 편집
기존 객체 지향 프로그래밍 환경에서 개발자는 클래스 및 메서드 정의를 포함하는 플레인 텍스트 소스 코드 파일을 직접 편집합니다.VisualWorks에서는 모든 Smalltalks와 마찬가지로 클래스를 포함한 모든 것이 실행 객체입니다.Smalltalk 클래스를 참조할 때 개발자는 객체 실행에서 정의를 도출합니다.VisualWorks의 메인 브라우저/편집기는 시스템 브라우저입니다.이를 통해 개발자는 전체 클래스 계층 또는 해당 패키지를 통해 클래스를 찾아볼 수 있습니다.VisualWorks Launcher에서 실행됩니다.
개발자는 시스템 브라우저의 목록 창을 사용하여 클래스 및 메서드 정의로 이동할 수 있습니다.그런 다음 코드 보기에서 보거나 편집하거나 새 정의를 사용하여 수정할 수 있습니다.
선언되지 않은 변수
변수에 대한 참조가 존재하는 동안 변수가 삭제되거나 구획을 통해 로드되지만 선언되지 않은 경우 변수 이름은 선언되지 않은 이름 공간에 들어갑니다.선언되지 않은 변수는 특정 프로그램 오류를 일으킬 수 있습니다.
문자열 및 파일
Cincom의 VisualWorks에 대한 첫 번째 튜토리얼은 VisualWorks를 사용하여 서버 로그 파일을 조작하는 방법을 보여줍니다.문자열이나 파일과 같은 것을 VisualWorks 내의 객체 구조에 쉽게 포함할 수 있는 방법을 보여줍니다.Smalltalk 표현에 대해 생각해 보겠습니다.
ws000101.log' asFilename 편집
VisualWorks 워크스페이스에서 이 식을 있는 그대로 평가할 수 있는 것은 조작 메뉴의 명령어입니다.그러면 다음 항목이 생성됩니다.
후자는 파일 내용을 포함하는 노트북과 같은 단순한 편집기입니다.즉, 평가 결과 파일에 대한 게이트웨이로 파일 이름 개체가 생성되었습니다.ws000101.log
편집자를 열었습니다.에디터 자체는 모든 컴포넌트(메뉴의 문자까지 포함)와 마찬가지로 오브젝트입니다.소스 코드는 이러한 모든 오브젝트에 사용할 수 있으며 VisualWorks에는 스태틱모드 또는 다이내믹모드로 코드를 평가 및 검사할 수 있는 다수의 인스펙터, 브라우저 및 기타 툴이 준비되어 있습니다.
튜토리얼
Cincom Smalltalk용 일일 튜토리얼이 있으며 Seaside 튜토리얼도 있습니다.
레퍼런스
- ^ "Running VisualWorks" (PDF). VisualWorks 7.6 Application Developer's Guide. Cincom. pp. 1–3. Retrieved 2009-04-25.
외부 링크
- 공식 웹사이트, Cincom
- UIUC의 VisualWorks wiki는 archive.org에 아카이브되어 있습니다.