프로그래밍 도구

Programming tool

프로그래밍 도구 또는 소프트웨어 개발 도구는 소프트웨어 개발자가 다른 프로그램 및 응용 프로그램을 생성, 디버깅, 유지 보수 또는 지원하기 위해 사용하는 컴퓨터 프로그램입니다.이 용어는 일반적으로 물리적 개체를 수정하기 위해 여러 손을 사용할 수 있는 것처럼 하나의 작업을 수행하기 위해 결합할 수 있는 비교적 단순한 프로그램을 가리킵니다.가장 기본적인 툴은 소스 코드 에디터와 컴파일러 또는 인터프리터이며, 이들은 어디에서나 지속적으로 사용됩니다.다른 도구는 언어, 개발 방법론 및 개별 엔지니어에 따라 어느 정도 사용되며 디버거나 프로파일러와 같은 개별 작업에 자주 사용됩니다.툴은 개별 프로그램(대부분 명령줄에서 개별적으로 실행)이거나 통합 개발 환경(IDE)이라고 불리는 단일 대형 프로그램의 일부일 수 있습니다.많은 경우, 특히 보다 단순한 사용을 위해 디버거를 사용하는 대신 인쇄 디버깅, 프로파일러 대신 수동 타이밍(프로그램 전체 또는 코드 섹션) 또는 버그 추적 시스템 대신 텍스트 파일 또는 스프레드시트 내의 버그를 추적하는 등 툴 대신 단순한 애드혹 기술을 사용한다.

툴과 어플리케이션의 구분이 모호하다.예를 들어, 개발자는 항상 간단한 데이터베이스(: 중요한 값 목록이 들어 있는 파일)를 [dubious ]도구로 사용합니다.그러나 완전한 데이터베이스는 일반적으로 그 자체로 애플리케이션 또는 소프트웨어로 간주됩니다.오랫동안 컴퓨터 지원 소프트웨어 엔지니어링(CASE) 도구가 필요했습니다.성공적인 툴은 찾기 어려운 것으로 판명되었습니다.어떤 의미에서 CASE 툴은 UML 등의 설계 및 아키텍처 지원을 강조했지만 가장 성공적인 툴은 IDE입니다.

프로그래밍 도구 사용

인간에서 컴퓨터 언어로 번역

현대 컴퓨터는 매우 복잡하며, 그것들을 생산적으로 프로그래밍하기 위해서는 다양한 추상화가 필요하다.예를 들어 프로그래머는 프로그램의 바이너리 표현을 쓰는 대신 C, Java 또는 Python과 같은 프로그래밍 언어로 프로그램을 작성합니다.어셈블러, 컴파일러링커와 같은 프로그래밍 도구는 프로그램을 쓰기 가능하고 읽을 수 있는 소스 언어에서 컴퓨터로 실행할 수 있는 비트와 바이트로 변환합니다.인터프리터는 원하는 동작을 만들기 위해 프로그램을 즉석에서 해석합니다.

이러한 프로그램은 프로그램 일부를 메모리에 배치하고 링커처럼 프로그램 부분 간의 참조를 수정하는 등 인간이 수행했을 때 시간이 많이 걸리고 오류가 발생하기 쉬운 많은 정의되고 반복적인 작업을 수행합니다.한편 컴파일러를 최적화하면 프로그램의 실행 속도 또는 기타 특성을 개선하기 위해 소스 코드에서 복잡한 변환을 수행할 수 있습니다.이것에 의해, 프로그래머는, 프로그램이 실행되고 있는 머신의 상세한 것에 신경 쓰지 않고, 프로그램의 보다 높은 레벨의 개념적인 측면에 집중할 수 있습니다.

인간이 프로그램 정보를 이용할 수 있도록 하다

소프트웨어의 복잡성이 높기 때문에 아무리 경험이 많은 소프트웨어 개발자도 한 눈에 대부분의 프로그램을 이해할 수 없습니다.고급 프로그래밍 언어에 의해 제공되는 추상화는 또한 프로그래머에 의해 작성된 소스 코드와 실제 프로그램의 동작 사이의 연관성을 이해하기 어렵게 만든다.프로그램의 버그를 찾아내고 프로그램을 확장할 때 새로운 버그가 생기는 것을 방지하기 위해 소프트웨어 개발자는 프로그램에 대한 모든 종류의 정보를 시각화하는 프로그래밍 도구를 사용합니다.

를 들어, 디버거는 프로그래머가 실행 중인 프로그램에 대한 정보를 프로그래밍에 사용되는 소스 언어로 추출할 수 있도록 합니다.디버거는 컴파일러에 의해 저장된 정보를 사용하여 구체적인 머신의 상태로부터 소스 프로그램의 변수 값을 계산할 수 있습니다.메모리 디버거는 프로그램 장애의 일반적인 원인이 될 수 있는 실행 중인 프로그램의 의심스러운 메모리 액세스 또는 완전히 잘못된 메모리 액세스를 직접 지적할 수 있습니다.

도구 목록

소프트웨어 툴에는 다양한 형태가 있습니다.

IDE

통합 개발 환경은 많은 도구의 기능을 하나의 패키지로 결합합니다.예를 들어 특정 프로젝트의 파일에서만 내용을 검색하는 것과 같은 특정 태스크를 더 쉽게 수행할 수 있습니다.예를 들어 IDE는 엔터프라이즈 수준의 애플리케이션 개발에 사용할 수 있습니다.

이 통합 개발 환경 비교에서는 특정 프로그래밍 언어에 대한 IDE의 다양한 측면을 확인할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  • Petascale Computing Workshop 2007 소프트웨어 개발 도구
  • Kernighan, Brian W.; Plauger, P. J. (1976), Software Tools, Addison-Wesley, pp. 352, ISBN 0-201-03669-X

외부 링크

Wikimedia Commons 프로그래밍 도구 관련 미디어