2017년 3월 16일 목요일

문장구조법 하이라이트

문장구조법 하이라이트

HTML의 문장구조법 하이라이트

문장구조법 하이라이트(: Syntax highlighting)란, 텍스트 문자 편집기의 기능이며, 텍스트중의 일부분을 그 만큼류 마다 다른 이나 폰트로 표시하는 것이다.문장구조법 칼라 링(영: Syntax coloring)이라고도.

이 기능에 의해, 프로그램 언어마크업 언어라고 하는 구조화 된 언어에 대하고, 그 구조나 구문상의 에러가 시각적으로 구별하기 쉬워지기 위해, 원시 코드의 기술이 용이해진다.에디터에 따라서는 문장구조법 하이라이트와 스펠링이나 코드 다다미 포함이라고 한, 그 외의 기능을 통합해 제공하는 것도 있다.

목차

실용상의 특징

문장구조법 하이라이트는, 특히 복수 페이지에 걸치는 코드에 대해서, 텍스트의 가독성을 향상시켜, 문맥을 보다 명료하게하기 위한 수법의 하나이다.독자는 관심이 없는 코드나 코멘트를, 그것이 긴 것이어도, 편하게 무시해 읽을 수 있다.

또, 프로그래머가 프로그램중의 잘못을 찾는 도움이 된다.예를 들면, 대부분의 에디터는 문자열리터럴을 땅의 코드와는 다른 색으로 하이라이트 한다.문자색 대비로부터, 문자열 리터럴의 단락 기호가 잊어를 찾아내는 것이보다 간단하게 된다.또, 많은 텍스트 문자 편집기에는 괄호의 대응을 체크하는 기능도 있다.커서 위치의 괄호의 페어를 특별한 색으로 표시하는 것으로, 올바르게 대응하고 있을까의 확인이 용이해진다.

에디터에 따라서는, 채색의 정보를 인쇄나 다른 텍스트 처리 소프트웨어와의 교환에 적절한 형식에서 export 할 수 있는 것도 있다.export용의 파일 형식으로서는 HTML나 색포함의 LaTeX, PostScript, RTF등이 사용된다.

그러나, 문장구조법 하이라이트에는

  • 대강 읽기가하기 쉬워지므로, 프로그래머는 코드 전체를 이해하려고는 하지 않게 된다
  • typography상의 이유로부터, 하이라이트 된 코드는 되어 있지 않은 코드보다 실제로는 판독성이 뒤떨어져 버린다

그렇다고 하는 지적도 있는[1].

실례

이하는 C++의 코드를 문장구조법 하이라이트 한 것이다.

 // Allocate all the windows for (int i = 0; i < max; i++) {     wins[i] = new Window(); } 

이 예로는, 소프트웨어는 키워드(예약어)로서 forintnew를, 변수명으로서 iwinsmax를 판별해, 다른 색으로 하이라이트 하고 있다.1행째의 코멘트도 코드 부분과는 구별할 수 있도록 하이라이트 되고 있다.

복수의 언어에의 대응과 한계

1개이상의 언어에 대응하는 에디터로는, 문장구조법 하이라이트를 올바르게 행하기 위해서, 유저가 텍스트의 언어를 지정하는지, 에디터가 파일의 확장자나 내용으로부터 언어를 자동적으로 판별할 필요가 있다.

복수의 언어의 문장구조법 하이라이트를 서포트하는 방법으로서 언어 마다 문장구조법 하이라이트의 규칙을 독립해 보관 유지하는 방식이 있다.이 방식에는 복수의 언어에 대응한 에디터의 작성이 어느 정도는 간단하게 된다고 하는 이점이 있지만, 잠재적인 한계도 있다.

예를 들면, 유저에 따라서는 이하와 같은 요구도 있을 수 있다.

  • 복수의 언어를 포함한 텍스트를 취급하고 싶다.예를 들면 JavaScript 코드를 묻은 HTML 파일 등.
  • 에디터가 대응하고 있지 않는 언어의 텍스트를 취급하고 싶다.예를 들면, 마이너 언어나 의사 코드 등.

1985년에 Live Parsing Editor(LEXX나 LPEX로 불린다)가 옥스포드 영어 사전의 전자화를 위해서 개발되었다.이것이 색첨부의 문장구조법 하이라이트를 이용한 아마 최초의 에디터일 것이다.그 Live parsing 기능은 유저가 문장이나 프로그램, 데이터 파일용으로 파서를 추가할 수 있던[2].

대부분의 에디터는, 언어 마다 파서를 실장한다고 한 복잡하고 귀찮은 방법은 취하지 않고, 패턴 매치에 의한 휴리스티크스에 근거해 문장구조법 하이라이트를 실시하므로, 그 결과는 완전하게 정확이라고 할 수는 없다.게다가 패턴 매치의 알고리즘에 따라서는, 어떤 종류의 구문의 하이라이트 처리가 매우 늦은 것이 되어 버린다.항상 파일 전체를 해석하는 것이 아니라, 표시하는 부분만을 해석하는 것으로 이 문제를 해결하는 에디터도 있다.

각주

  1. ^ LinusAkesson (2007년 8월 26일). "A case against syntax highlighting". 2007년 8월 28일 열람.
  2. ^ LEXX – A programmable structured editor, Cowlishaw, M. F., IBM Journal of Research and Development, Vol 31, No. 1, 1987, IBM Reprint order number G322-0151

This article is taken from the Japanese Wikipedia 문장구조법 하이라이트

This article is distributed by cc-by-sa or GFDL license in accordance with the provisions of Wikipedia.

Wikipedia and Tranpedia does not guarantee the accuracy of this document. See our disclaimer for more information.

In addition, Tranpedia is simply not responsible for any show is only by translating the writings of foreign licenses that are compatible with CC-BY-SA license information.

0 개의 댓글:

댓글 쓰기