의견.png

위키원
Rhkd1456 (토론 | 기여)님의 2019년 9월 16일 (월) 15:09 판 (역사)
이동: 둘러보기, 검색
(Perl) 로고
(Perl) 로고와 글자

(Perl)이란 Practical Extraction and Report Language의 약자로서, 유닉스 계열의 운영체제에서 사용하는 스크립트 프로그래밍 언어이다. 1987년 래리 월(Larry Wall)이 개발하였다. 펄의 마스코트는 낙타이다.

개요

펄(Perl)은 래리 월(Larry Wall)이 개발한 프로그래밍 언어로 파일로부터 데이타의 추출과 변환을 쉽게 구현할 수 있는 C, ask, sed, sh의 장점들을 취한 프로그래밍 언어이다. 1987년에 발표되어 2019년 현재 32년 된 언어이다. 만든 이는 래리 월(Larry Wall)이다. 이름 자체는 Practical Extraction and Reporting Language(실용적인 데이터 취득 및 리포트 작성 언어)의 약자이다. 본래는 붙일만한 이름을 찾을 수 없었던 제작자가 성서에서 아무 단어나 따와서 붙인 이름의 Pearl(진주)라는 이름을 붙이고 싶어했지만, 이미 그런 이름을 가진 프로그래밍 언어가 있었기에 철자만 바꿔서 Perl이라는 이름을 붙였다. 약자는 나중에 가져다 붙인 것이다.

역사

  • 1987년 : 랠리 월은 유니시스에서 프로그래머로 펄에 대한 작업 시작
  • 1987년 12월 18일 : 버전 1.0을 comp.sources.misc 뉴스그룹에 공개
  • 1988년 : 개선된 정규 표현식 엔진을 포함한 펄 2 공개
  • 1989년 : 펄 3의 출시로 이진 데이터 스트림 지원 추가
  • 1991년 : 프로그래밍 펄이라는 제목의 책 출판과 펄 버전4 출시
  • 1993년 : 펄 4는 4.036에 이르며 일련의 유지 보수판으로 출시
  • 1994년 4월 : perl-porters 메이링 리스트가 개설되어 펄 5를 다른 플랫폼으로 이식하여 협업 시작
  • 1994년 10월 17일 : 펄 5.000의 공개로 객체, 레퍼런스, 렉시컬 변수, 모듈 등의 추가와 인프리터 수정 없이도 모듈이 언어의 확장을 위한 매커니즘 제공
  • 1995년 : 펄 5의 초기 설계
  • 1995년 3월 13일 : 펄 5.001의 공개
  • 1996년 2월 29일 : 펄 5.002와 새로운 프로토타입 기능 더불어 공개
  • 1996년 6월 25일 : 펄 5.003의 보안 문제 수정
  • 1997년 5월 15일 : 펄 5.004의 공개와 여러 기능들 가운데 유니퍼설 패키지 기능 포함
  • 1998년 7월 22일 : 펄 5.005로 regex 엔진에 여러 기능이 강화와 B::* 모듈을 통한 백엔드로의 새로운 후킹, ar// 정규 표현식 인용 연산자, 기타 수많은 코어 모듈과 BeOS를 포함한 더 많은 운영 체제 지원
  • 2000년 3월 22일 : 펄 5.6과 64비트 지원, 유니코드 문자열 표현, 대용량 파일 지원 "our" 키워드 포함[1]
  • 2001년 : 변경 요청 사항들을 요약하고 다음 세대의 펄의 설계를 나타내는 일련의 문서들인 펄 6의 계시록을 위한 작업 시작
  • 2002년 7월 18일 : 펄 5.8의 공개와 유니코드 지원을 개선하고 새로운 입출력과 새로운 스레드를 구현하였으며, 수치 정확도를 개선하고 새로운 모듈 몇 개 더 추가
  • 2007년 12월 18일 : 펄 5.10 공개, 펄 6에 가까운 새로운 기능들이 포함, Switch 문, 정규 표현식 업데이트, 스마트 매치 연산자 "~~" 포함
  • 2010년 4월 12일 : 펄 5.12 공개, 새로운 package NAME VERSION 문법, 야다 야다 연산자, 암묵적 제한, 완전한 2038년 문제 대응, 정규 표현식 변환 오버로딩, DTrace 지원, 유니코드 5.2 지원
  • 2011년 1월 21일 : 펄 5.12.3 공개로 업데이트된 모듈과 일부 문서 변경 사항 포함[2]
  • 2011년 5월 14일 : 펄 5.14 공개
  • 2011년 6월 20일 : 펄 5.12.4 공개
  • 2011년 9월 26일 : 펄 5.14.2 공개, JSON 지원
  • 2012년 5월 20일 : 펄 5.16공개, 가상으로 구현하려는 펄의 버전을 지정할 수 있는 기능을 들 수 있으며 이로써 사용자가 펄 버전을 업그레이드하더라도 일반적으로 비호환되는 오래된 스크립트를 실행할 수 있게 됨
  • 2012년 11월 10일 : 펄 5.15.5 공개
  • 2013년 5월 18일 : 펄 5.18 공개, dtrace 후킹, 렉시컬 함수, 더 많은 CORE:: 함수, 보안적인 이유로 인한 해시의 점검, 유니코드 6.2 지원
  • 2013년 10월 10일 : 펄 5.14.4 공개
  • 2014년 5월 27일 : 펄 5.20 공개, 서브루틴 서명, 해시 슬라이스/새로운 슬라이스 문법, 후위 역참조, 유니코드 6.3, 일관된 난수 발생기를 사용하는 rand() 추가

포니

PONIE는 Perl On New Internal Engine의 준말이다. PONIE 프로젝트는 2003년부터 2006년까지 존재해쓰며, 펄 5와 펄 6 간의 연결 다리 역할을 하기로 되어 있다. 펄 5 인터프리터를 다시 작성함으로 펄 6 가상 머신인 패럿에서 실행할 수 있게 하려는 노력이 있다. 목적은 전 세계 수천 개의 회사에 쑤이는 수백만 줄의 펄 5 코드의 미래를 보장하기 위해서였다. PONIE 프로젝트는 2006년에 끝났으며, 더 이상 개발되고 있지 않다. PONIE의 일부로서 펄 5 인터프리터에 적용된 개선 사항들 중 일부분은 해당 프로젝트에 추가되었다.

특징

펄은 범용언어로 주로 방대한 문자열을 처리하는 데 사용된다.

펄은 정규표현식의 대부이다. 긴 문자열을 분석해 어떤 의미를 추출할 때 펄은 최적의 언어이다.

  • 상대적으로 배우기 쉽다
  • C와 비슷하지만 해석형 언어. 그렇기 때문에 코드실행이 쉽다.
  • 동적언어이다.
  • 펄 개발자를 채용도 하지만, 파이썬루비는 배우는 것도 좋다.

펄 언어의 장점

  • 많은 운영체제에 포팅되었음 : 처음에는 유닉스를 위해 만들어졌지만,Perl로 씌여진 프로그램들은 서로 다른 운영체제에서 소스를 수정하지 않고도, (혹은 아주 약간만 수정하고도) 같이 사용할 수 있다. 결국, 지금은 거의 모든 운영체제에서 Perl을 사용할 수 있게 되었다.
  • 무료로 사용이 가능함 : 우리는 인터넷상에서 다양한 배포장소를 찾을 수 있고, 언제든 다운로드 받아서 여러분의 시스템에 설치할 수 있다.
  • 실용적임 : Perl이 실용적인 것은 Perl의 세가지 지향점인 완전한(Complete) 언어, 사용하기 쉬운 언어(Easy to learn), 효율적인 언어(Efficiency)를 달성했기 때문이다.
  • 효율적임 : 효율은 구현에 투입된 비용(시간, 인력)에 비례한 생산물의 가치라고 볼 때, Perl은 매우 효율적이다.텍스트, 네트웍, 데이터처리 등에 관한 다양한 처리능력을 갖추고 있으며, 사용자는 이러한 능력을 쉽게 이끌어 내 사용할 수 있다. 즉, 적은 시간에 적은 인역으로도 구현하고도, 다양한 능력을 활용하여 문제를 처리할 수 있다.

펄 언어의 단점

  • 특정 부분을 조작할때는 매우 느림 : 문자열 조각 이외의 작업을 할 때는 속도가 매우 느린편이다. 단, C코드로 이루어진 펄 모듈을 사용한다면 C와 견줄 속도를 낸다.
  • 이진수 파일을 다룰 시 불리함 : 펄 언어는 기본적으로 문자열 단위로 입출력하기에 바이트 단위로 다루는 데에는 미숙하다.
  • 독립적인 실행파일 : 펄 만에 독립적인 실행파일이 있기에 펄 이 설치되어 있지 않은 컴퓨터에서는 실행이 되지 않는다.( 펄 소스를 exe로 컴파일 해주는 프로그램이 있긴 하나 상용이고 완벽하지 않다.)

펄 언어의 평가

  • 개발자 기피 1호 언어 펄 : 펄은 2000년대 초반까지만 해도 개발자들에겐 만능 같은 존재였다. 하지만 불과 15년 만에 펄은 천덕꾸러기로 전락했다. 촉망받던 언어 '펄'이 현재에는 개발자들이 기피하는 언어로 평가된다. 이러한 평가가 나온 이유는 '스택오버플로' 때문이다. 최근 개발자들 사이에서 '선호하지 않는 기술' 태그로 분석할 수 있었다. 그 분석결과가 '선호하지 않는 기술' 안에 '펄'이 가장 많이 태그되었다.[3]

각주

  1. 이동 Perl 5 version 30.0 documentation perl56delta〉, 《펄 공식 사이트》
  2. 이동 Perl 5 version 30.0 documentation perl5123delta〉, 《펄 공식 사이트》
  3. 이동 임유경 기자, 〈개발자 기피 1호언어 펄…"야후 닮았다"〉, 《지디넷코리아》, 2017-11-07

참고자료

같이 보기


  질문.png 이 문서는 로고가 필요합니다.  

  의견.png 이 펄 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.