현재 위치 - 인적 자원 플랫폼망 - 미니프로그램 개발 - Perl 6 소개
Perl 6 소개
Perl 5와 호환되는 패턴을 제공하지만, Perl 6는 Perl 5와 구문이 다르기 때문에 새로운 컴퓨터 프로그래밍 언어로 간주할 수 있습니다.

Perl 6는 최신 언어 기능이 풍부합니다. 저자들은 정규 표현식을 재정의하고 함수형 프로그래밍 언어의 기능을 추가하여 진화 가능한 언어로 만들 계획입니다. Perl 6 및 Perl 커뮤니티의 지속적인 안정적인 발전을 위해서는 Perl 6 컴파일러를 Perl 6으로 재작성해야 합니다. Perl 언어의 원래 함수 라이브러리를 재사용할 수 있도록 컴파일러는 Perl 5 언어와 호환되는 패턴도 제공할 계획입니다.

Perl 6 언어의 구문 기능과 요구 사항으로 인해 Perl 6 컴파일러의 구현은 매우 복잡하며 오픈 소스 커뮤니티의 리소스는 상대적으로 열악합니다. 따라서 Perl 6 컴파일러의 개발은 상당히 더디게 진행되었습니다.

루비와의 비교

일반적으로는 (아마도 같은 들여쓰기 디자인 때문에) 루비 대 파이썬을 고려할 수 있지만, 관련 토론이나 인터뷰에서는 루비 대 펄 6를 가장 유력하게 꼽습니다.CPAN 랭킹 1위이자 펄 6 개발자인 Audrey는 다음과 같이 말한 적이 있습니다. "루비는 광고만 빼면 펄 6입니다."[1] 루비의 창립자인 마츠모토 유키히로(まつもとゆきひろ/,Matz)는 오라일리와의 인터뷰에서도 다음과 같이 말했습니다. "루비는 펄에서 많은 것을 빌려 왔습니다. 마츠의 야심은 루비의 이름에서도 엿볼 수 있습니다."진주는 6월의 탄생석이고[3], 루비는 7월의 탄생석입니다. Perl의 이름을 따서 만든 언어의 이름으로 루비라는 이름이 정말 적절하다고 생각합니다."

Perl의 아버지인 래리 월(Larry Wall)은 그의 글 "Perl, 종교, 그리고 ......"에서 [5] "저는 여러모로 루비를 좋아하는데, 그 이유는 Perl에서 차용한 부분들이 있기 때문입니다. :-)""저는 루비의 C도 좋아합니다."

"루비의 가장 큰 문제는 숨겨진 어휘 범위와 마찬가지로 최소한의 놀라움 원칙이 사람들을 잘못 인도할 수 있다는 것입니다."

"하지만 래리 월은 기사에서 다음과 같이 말합니다. 누구를 위한 놀라움을 줄이는 것이 문제일까요? 전문가와 초보자는 서로 다른 것에 놀라게 됩니다. 작은 프로그램에서 큰 프로그램을 작성하는 사람과 처음부터 큰 프로그램을 작성하는 사람은 다른 것에 놀랄 수 있습니다."

Perl 6의 구조

요약

소스 코드는 인터프리터로 전달되며, 인터프리터는 구문 트리를 생성합니다.

구문 트리는 컴파일러로 이동하여 바이트코드를 생성합니다.

바이트코드는 더 많은(그리고 더 나은) 바이트코드를 생성하는 옵티마이저로 이동합니다.

그런 다음 런타임은 들어오는 바이트코드를 처리합니다(실행할 수도 있지만 Java 바이트코드, 또는. Net 바이트코드, Alpha 실행 파일 또는 인코딩된 DNA 시퀀스로 변환할 수도 있습니다).

소스 코드

+ - +

|파서|

+ - +

구문 트리

+ - +

컴파일러|

+ - +

바이트 코드

+ - +

바이트 코드 옵티마이저|

+ - +<

더 나은 바이트코드

+ - +

|런타임|

+ - +

스케줄

인터프리터를 사용하면 이러한 규칙을 변경할 수 있습니다. 규칙 집합은 주요 언어(Perl, C, Python, Java 등)를 정의하며 를 정의하며, 다른 언어(예: $ @% 없는 Perl)에 대한 새 규칙을 작성할 수 있습니다.

런타임 엔진은 레지스터 기반 VM인 반면, perl5의 VM은 스택 기반입니다.

Perl을 다시 작성하는 주된 이유 중 하나는 혼란스러운 XS를 수정하기 위해서입니다(XS는 C/C++ 서브루틴으로 Perl을 확장하는 것을 의미함). Perl을 실행하는 데 사용되는 함수 외에는 Perl5를 확장하기 위한 API가 없기 때문에 Perl을 확장하려면 많은 지루한 작업이 필요합니다. Dan과 Larry의 목표는 가능한 한 쉽게 C로 확장할 수 있도록 만드는 것입니다(Brian Ingerson의 훌륭한 Perl5 인라인 모듈이 이를 위한 방향을 제시합니다). XS를 사용해 본 모든 사람들이 그가 죽기를 기다리고 있습니다.

Perl5는 C에서 실행되도록 설계되었으며, 최근 많은 VM(JVM, .NET)이 C를 대체하고 있기 때문에 C에서 실행될 뿐만 아니라 다른 VM에 바이트코드를 쉽게 공급할 수 있는 VM을 만나게 될 것입니다.