Overview of Free Pascal and Lazarus/ko

From Lazarus wiki
Revision as of 13:07, 25 November 2008 by Oranke (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) Bahasa Indonesia (id) italiano (it) 日本語 (ja) 한국어 (ko) polski (pl) português (pt) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)

프리 파스칼(FPC)은 두 개의 큰 특징을 가진 오픈 소스 파스칼 컴파일러 입니다. 첫번째는 델파이와의 호환성입니다. 또 하나는 다중 플랫폼에 대한 지원으로서 현재 윈도우즈, 맥 OS X, 리눅스에서 사용할 수 있습니다. 프리 파스칼은, 델파이에서 확장된 오브젝트 파스칼 프로그래밍 언어를 지원하는 것 뿐만 아니라, 델파이에서 쓸 수 있는 강력한 기능의 라이브러리나 클래스도 함께 이용할 수 있습니다. 델파이 사용자에게 잘 알려져 있는 System, SysUtils, StrUtils, DateUtils, Classes, Variants, Math, IniFiles 그리고 Registry 등의 유니트도 있습니다. 또한 이것들은 프리 파스칼이 동작하는 모든 플랫폼 상에서 동작 합니다. 그 외에도 프리 파스칼에는 Windows, ShellAPI, BaseUnix, Unix, 그리고 DynLibs 처럼 특정 운영체제를 위한 유니트들도 준비되어 있습니다. 프리 파스칼 런타임 라이브러리(RTL)는 이 유니트들을 모아놓은 커다란 라이브러리 입니다.

라자루스는 프리 파스칼용 통합 개발 환경(IDE)을 제공하는 오픈 소스 프로젝트 입니다. 프리 파스칼로 개발 되었으며, 문법 강조가 가능한 코드 에디터와 직관적인 폼 디자이너를 가지고 있습니다. 라자루스가 사용하는 라자루스 컴포넌트 라이브러리(LCL) 은 델파이의 비주얼 컴포넌트 라이브러리(VLC) 과 높은 호환성을 가지고 있으며 VCL 컨트롤과 마찬가지로 폼이나 버튼, 텍스트박스등이 있습니다. 이 컨트롤들을 적절하게 배치하여 그래픽 사용자 인터페이스(GUI)를 가지는 어플리케이션을 작성할 수 있습니다.

프리 파스칼과 라자루스는 파스칼 코드로 작성 되어 있습니다. 프리 파스칼 컴파일러와 라자루스 뿐 아니라 RTL 이나 LCL의 모든 유니트들은 소스 코드가 완전히 공개되어 있습니다.

프리 파스칼과 라자루스는 델파이와 마찬가지로 일반적인 프로그래밍 툴 입니다. 이 의미는 다음과 같은 폭 넓고 다양한 프로그램을 개발하는 데 사용할 수 있다는 의미 입니다.


콘솔 어플리케이션

콘솔 어플리케이션은 GUI를 가지지 않습니다. 그 대신 일반적으로 콘솔상에서 실행되며 입력과 출력 모두 콘솔을 통해 이루어지게 됩니다. 콘솔은 윈도우즈 에서 보통 커맨드 프롬프트 윈도 라고 불리며 OS X나 리눅스에서는 터미널 윈도라고 불립니다. 콘솔 어플리케이션으로는 윈도우즈의 FC (파일비교:file compare)나 유닉스의 cd, cp 같은 작은 유틸리티를 예로 들 수 있습니다. 콘솔 어플리케이션은 GUI가 없지만 다른 프로그램이나 배치파일 (유닉스/리눅스에서는 셸 스크립트) 에서 실행될 수 있는 강력한 처리 계통 입니다. 프리 파스칼 컴파일러 및 함께 포함된 유틸리티들은 모두 콘솔 프로그램이며 따라서 콘솔이나 배치파일, 또는 라자루스 IDE 내에서 실행시킬 수 있습니다.

콘솔 어플리케이션은 간단한 텍스트 에디터와 프리 파스칼 컴파일러 만으로도 개발할 수 있으며 굳이 라자루스를 사용할 필요는 없습니다. 그러나 라자루스 IDE 상에서 콘솔 어플리케이션을 작성한다면 보다 쉽게 소스 코드를 편집하고 컴파일을 할 수 있습니다.

동적 링크 라이브러리

동적 링크 라이브러리는 컴파일된 함수의 집합이며, 다른 프로그램으로부터 호출할 수 있습니다. 그 명칭에서 알 수 있듯이, 이 라이브러리는 실행 파일이 컴파일 될 때 링크할 필요가 없으며, 실행시에 호출할 수 있습니다. 윈도우즈에서 이 라이브러리 파일은 .dll (dynamic-link library 또는 DLL) 이라는 확장자를 가집니다. OS X 에서의 확장자는 .dylib (dynamic shared library) 이며, 리눅스에서는 .so (shared object library) 라는 확장자가 붙습니다. 동적 링크 라이브러리는 일반적으로 다른 프로그램에 새로운 기능을 추가 하거나, C나 C++같은 언어에서 호출될 라이브러리를 만들거나, 아주 큰 프로젝트에서 각 프로그래머들이 기능을 분담해 개발하기 위한 용도로 사용됩니다. (역자 주: 마지막 문단은 "다른 개발자의 발가락을 밟지 않게 하기 위해 사용된다"는데... 이 표현을 우리말로 맛깔스럽게 옮기기가 쉽지 않네요. ㅠㅠ). 윈도우즈 자체도 수백개의 DLL로 구성되어 있으며, OpenOffice.org 같이 규모가 큰 어플리케이션도 마찬가지 방법을 쓰고 있습니다.

콘솔 어플리케이션 개발과 마찬가지로 동적 링크 라이브러리는 간단한 텍스트 에디터와 프리 파스칼 컴파일러 만으로 개발할 수 있습니다. 물론 라자루스 IDE 상에서도 동적 링크 라이브러리의 프로젝트를 생성해 개발할 수 있습니다.

On Windows, DLLs have an undeserved reputation for being overly complex and unstable. This has more to do with the way they've sometimes been installed than it does with DLLs themselves. Actually, since passing information to and from DLLs is normally done with standard, simple data types (rather than with language-specific objects or structures), this requirement forces programmers to pay more attention to what they're doing. If done right, this can result in better, more stable programs.

GUI 어플리케이션

Most of the programs we use daily are GUI apps, including word processors, Web browsers, spreadsheet programs, even many development tools. Lazarus and Delphi are both good examples of full-featured GUI apps. When developing a GUI app with Lazarus, not only do you develop units of Pascal code, you also design forms containing visual controls such as buttons and list boxes. Like Delphi, form design in Lazarus is done visually. Control properties can be set in the IDE or in code.

Since the LCL controls are available on all supported platforms, a GUI app developed on one platform (for example, Windows) can be compiled on another platform (for example, OS X or Linux) without any changes to the form design or the form code files.