구조 편집기
Structure editor구조 편집기(Structure Editor, structured editor 또는 projectional editor)는 문서의 기초 구조를 인지하는 모든 문서 편집기다.구조 편집기를 사용하여 계층적이거나 표시된 텍스트, 컴퓨터 프로그램, 다이어그램, 화학 공식 및 명확하고 잘 정의된 구조를 가진 기타 유형의 내용을 편집할 수 있다.반대로, 텍스트 편집기는 일반 텍스트 파일을 편집하는 데 사용되는 모든 문서 편집기다.[clarification needed]
일반적으로 텍스트와 구조 편집의 이점은 단일 하이브리드 도구의 사용자 인터페이스에 결합된다.예를 들어, Emacs는 근본적으로 텍스트 편집자지만 텍스트에서 유추되는 구조로서 단어, 문장, 단락의 조작을 지원한다.반대로 Dreamweaver는 기본적으로 표시된 웹 문서의 구조 편집자지만 원시 HTML 텍스트의 표시와 조작도 지원한다.마찬가지로 분자 편집기는 일반적으로 그래픽 입력과 텍스트 입력을 모두 지원한다.CAD 시스템 및 PowerPoint와 같이 내용이 그래픽이고 텍스트 표현이 어색할 때 구조 편집이 주를 이룬다.텍스트 편집은 웹 양식의 텍스트 필드와 같이 콘텐츠에 구조가 크게 결여되어 있을 때 주로 발생한다.포맷된 텍스트를 직접 편집하는 것처럼 보이는 WORSIWYG 워드 프로세싱 시스템은 기본적으로 기본 마크업 텍스트의 구조 편집기다.
언어학에서 구문은 문법적 발언의 구조를 연구하는 학문이며, 따라서 구문방향 편집자는 구조 편집자의 동의어다.언어 기반 편집기와 언어에 민감한 편집기도 동의어다.언어 기반 편집자의 특징은 임시 코드나 형식 문법에 의해 구현될 수 있다.예를 들어 Emacs의 언어 민감도는 주어진 언어에 대한 편집 모드의 Lisp 정의에서 구현된다.대조적으로 XML 편집기의 언어 민감도는 주어진 언어에 대한 공식적인 DTD 스키마에 의해 구동된다.
구조화된 편집자는 구조화된 방식으로 기본 문서를 보고 조작할 수 있지만, 문서가 디스크에 저장되는 파일 형식은 구조화되어 있거나 그렇지 않을 수 있으며 개방되거나 표준화되지 않을 수 있다(예: 일반 텍스트 대 마이크로소프트 워드 문서).
소스 코드는 컴퓨터 언어의 구문에 의해 자연스럽게 구성되기 때문에, 구조 편집은 소스 코드 편집기에서 종종 채택되어 왔다.그러나 대부분의 소스 코드 편집자는 구조 편집기가 아닌 구문 강조 표시와 코드 접기 같은 추가 기능을 가진 텍스트 편집기들이다.일부 통합 개발 환경의 편집자는 소스 코드를 구문 분석하여 파스 트리를 생성하여 구조 편집기와 동일한 분석이 가능하지만, 실제 소스 코드의 편집은 일반적으로 원시 텍스트로 이루어진다.
각 프로그래밍 언어는 일반적으로 문맥이 없는 문법에 의해 주어지는 잘 정의된 구문을 가지고 있으며, 따라서 그 언어로 쓰여진 소스 코드의 의미 있는 구조 요소는 본문의 문법 구문에 해당한다.초기 구문 중심의 소스 코드 편집기에는 Interlisp-D(Lisp의 제한된 구문용)와 Emily[1](PL/I의 풍부한 구문용)가 포함되었다.
구문 방향 편집자는 문법 규칙을 생성적(예: 프로그램 텍스트의 형식적 파생에서 하나 이상의 단계에 해당하는 사용자 템플릿 제공) 또는 추론적(예: 특정 언어 부분의 구문이 다른 부분이 필요한 문맥으로 이동하는 것을 방지) 또는 분석적(예: 텍스트 분석)으로 취급할 수 있다.편집하여 구조화된 표현 작성).소스 코드 편집기의 구조 편집 기능은 구문이 잘못된 프로그램을 쓰기 어렵게 만든다.언어에 민감한 편집자는 절대적 요구 사항으로 구문적 정확성을 부과하거나(예: 멘토와[2] 같음), 경고 발행 후 구문 오류를 허용할 수 있다(예: 코넬 프로그램 신디사이저와[3] 동일).엄격한 구조화 편집자는 보통 텍스트 편집기로 수행이 쉬운 편집을 어렵게 만드는 경우가 많은데, 이는 소스 코드 편집과 같은 일부 도메인에서 구조화 편집의 채택 부족에 기여하는 요인 중 하나이다.
일부 구문 방향 편집기는 형식 정확성과 같은 언어의 상황에 맞는 제약조건에 대한 준수를 모니터한다.그러한static-semantic 제약 조건 명령조로 행동(예:Gandalf[4][5][6]로), 또는 declaratively 특성 문법(예를 들어, 신시사이저에 Generator[7][8])에 의해나 다분류 대수학(예:PSG[9]로)또는 논리적인 프로그램(예를 들어 에 Centaur[10]과 Pan[11])에 대한 적합성은 운트에 의해 확인과 통일에 의해 지정할 수 있다.편집 기계공 erlyingy. 구조화된 편집자는 사용자가 문서를 구문론적으로 또는 의미론적으로 부정확하게 만드는 편집을 수행할 수 있도록 허용하는 정도에 따라 다르다.
언어에 민감한 편집자는 언어의 문법에 관한 파스 트리로, 또는 추상 구문 트리(AST)로 문서를 나타내는 것이 일반적이다.예를 들어, DOM 트리는 기본적으로 주어진 DTD와 관련된 AST이다.종종, 그 기본 트리의 텍스트 보기는 기본 트리를 예쁘게 인쇄함으로써 생성된다.편집인들은 의도적인 programming[12]과language-oriented 프로그래밍을 범용 언어와 도메인 고유 언어에 관련된겠지만 기본적인 표현(의도)과 표면의 표현은 프로그래밍 languag에서 텍스트 사이의 더 큰 분리를 목표로 하language-sensitive 편집자들의 특징들을 많은 부분을 공유한다.e).
예
- 제트브레인 MPS
- 라피스(텍스트 편집기):경량 구조로 텍스트 편집
참고 항목
참조
- ^ Hansen, Wilfred J. (1971). "User engineering principles for interactive systems". Proceedings of the Fall Joint Computer Conference FJCC 39. AFIPS. pp. 5623–532.
- ^ Donzeau Gouge, V.; Huet, G.; Kahn, G.; Lang, B. (July 1980). "Programming environments based on structured editors: The Mentor experience" (PDF). INRIA Research report no. 26.
- ^ Teitelbaum, T.; T. Reps (September 1981). "The Cornell Program Synthesizer: A syntax-directed programming environment". Communications of the ACM. 24 (9): 563–573. doi:10.1145/358746.358755.
- ^ Habermann, A. Nico; Notkin, David (1986). "Gandalf: Software Development Environments" (PDF). IEEE Trans. Softw. Eng. 12 (12): 1117–1127.
- ^ Medina Mora, Raul (1982). Syntax-directed editing--towards integrating programming environments. Pittsburgh, PA: Carnegie Mellon University (PhD Dissertation).
- ^ Kaiser, Gail Elaine (1985). Semantics for structure editing environments. Pittsburgh, PA: Carnegie Mellon University (PhD Dissertation).
- ^ Reps, T. (1984). Generating Language-Based Environments. Cambridge, MA: The M.I.T. Press. (Awarded the 1983 ACM Doctoral Dissertation Award.).
- ^ Reps, Thomas W.; Teitelbaum, Tim (1988). The Synthesizer Generator: A System for Constructing Language-Based Editors. Cambridge, MA: Springer-Verlag.
- ^ Snelting, Gregor; Henhapl, Wolfgang (1986). "Unification in many-sorted algebras as a device for incremental semantic analysis". Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages (POPL). New York, NY: ACM Press. pp. 229–235.
- ^ Borras, P.; Clement, D.; Despeyrouz, Th.; Incerpi, J.; Kahn, G.; Lang, B.; Pascual, V. (1989). "CENTAUR: The System". "Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments (PSDE). Vol. 24. New York, NY: ACM Press. pp. 14–24.
- ^ Ballance, Robert A.; Graham, Susan L.; Van De Vanter, Michael L. (1990). "Pan language-based editing system for integrated development". SDE 4: Proceedings of the fourth ACM SIGSOFT symposium on Software development environments. Irvine, CA: ACM Press. pp. 77–93.
- ^ Czarnecki, Krzysztof & Eisenecker, Ulrich (June 2000). Generative Programming: Methods, Tools, and Applications, Chapter 11 (Intentional Programming). Reading, MA: Addison-Wesley.
외부 링크
이 기사의 외부 링크 사용은 위키피디아의 정책이나 지침을 따르지 않을 수 있다.(2014년 11월)(이를 과 시기 |
- "웹 사이트용 계층 구조 편집기", Samir Arora 등.특허 번호: 5911145.접수일: 1996년 7월 29일.발행일자 : 1999년 6월 8일
- 구조화된 C# 코드 편집기의 설계, 구현 및 통합
- 구조화 편집자 연구
- graPHIGS 프로그래밍 인터페이스:개념 이해
- 용암 프로그래밍 언어 및 환경
- 카네기 멜론 대학의 자연 프로그래밍 프로젝트에 의해 만들어진 구조적인 편집자 바리스타
- 카네기멜론대학이 대학과 대학에 제공한 구조 편집자 앨리스.
- 리얼리티 인터렉티브별 자바 구조 편집기 코드 뷰
- 코드 프로세서(프로그램 편집기 아키텍처라고도 함), Michael L. Van De Vanter 및 Marat Boshernitsan에 의해 Java의 구조화된 편집기
- VFPE(Visual Functional Programming Environment, VFPE)는 구조화된 편집자를 활용하는 Joel Kelso의 박사 논문이다.
- Preston L. Bannister의 구조 편집에 대한 의견 자료인 "구조 편집자, IDE 및 또 다른 Lisp 플래시백"
- "코드의 심층 구조 탐구" 존 우델의 Eclipse IDE와 함께 자바에서 구조화된 편집에 관한 기사.
- "구문 지시 편집자의 유용성에 관한 연구" 버나드 랭의 논문, INRIA의 멘토 시스템을 이용한 구조 편집의 장점과 단점에 관한 연구
- 마틴 파울러: 랭귀지 워크벤치
- Lutz Roeder의 구조화된 편집자 프레젠테이션 및 출판물
- 프로그램트리
- 하위 텍스트
- 휘드비는 다음 코딩 혁명을 놓칠지도 모른다.
- 퓨어빌더
- Larch Environment - Python을 위한 구조화된 소스 코드 편집기
- 구조화된 편집기 및 코드 생성기를 게시하기 위한 클라우드 기반 플랫폼인 파악
- 듀스: 스케치-n-프로토콜의 경량 구조 편집