프로그래밍 숙어
Programming idiom프로그래밍 숙어 또는 코드 숙어란 동등한 의미적 역할을 공유하는 코드 조각의 그룹을 말하며,[1] 소프트웨어 프로젝트 전반에 걸쳐 자주 반복되며, 하나 이상의 프로그래밍 언어 또는 라이브러리에서 반복 구성의 특수성을 표현한다.개발자들은 코드 스니펫 내에서 하나 이상의 구문 표현식을 연관시키고 의미를 부여함으로써 프로그래밍 숙어를 인식한다.이 관용어는 연속적이거나 흩어진 코드 조각에 의해 구현되는 코드의 패턴에 기초하는 개념으로 볼 수 있다.이 단편들은 여러 프로그래밍 언어, 프레임워크 또는 심지어 라이브러리로도 이용 가능하다.일반적으로 말해서 프로그래밍 숙어는 사용 중인 프로그래밍 언어에 내장되어 있지 않은 단순한 작업, 알고리즘 또는 데이터 구조의 자연어 표현이나 반대로 프로그래밍 언어에 내장되어 있는 특이하거나 주목할 만한 특징을 사용하는 것이다.
프로그래밍 언어와 관련된 숙어와 그것을 사용하는 방법을 아는 것은 그 언어에서 유창성을 얻고, 한 언어나 틀에서 다른 언어로 지식을 전달하는 중요한 부분이다.
일반적인 오해는 프로그래밍 언어를 사용하는 용어의 부사나 형용사를 전형적인 방법으로 사용하는 것인데, 이것은 정말로 특이성을 가리킨다.예를 들어 C에서 동적 메모리를 관리하는 특이한 방법은 C 표준 라이브러리 함수를 malloc 및 free로 사용하는 것이지만 관용어는 C에서 코드 조각 malloc로 달성할 수 있는 반복적인 의미 역할 또는 C++에서 포인터 = 새로운 유형[number_of_elements]으로 동적 메모리 할당을 말한다.두 가지 모두에 공통적으로 코드 조각은 코드 이론이 개발자에게 노출되지 않는 한 C나 C++에 익숙하지 않은 사람이 이해할 수 있다는 것이다.
간단한 숙어의 예
인쇄 헬로 월드
알려진 언어와 새로운 언어 사이의 구문 차이를 프로그래밍하거나 알아차리는 법을 배우는 가장 일반적인 시작점 중 하나이다.[2]
몇 가지 구현이 있으며, 그 중 C++용 코드 조각:
찌꺼기::뻐드렁니가 나다 << "헬로 월드\n";
Java의 경우:
시스템.밖으로.인쇄하다("헬로 월드");
배열에 요소 삽입
이 관용구는 개발자들이 특정 언어로 컬렉션을 조작하는 방법을 이해하는데 도움을 주며, 특히 목록 s의 위치 i에 요소 x를 삽입하고 요소를 오른쪽으로 이동시킨다.[3]
코드 조각:
Python의 경우:
s.삽입하다(i, x)
JavaScript의 경우:
s.스플라이스(i, 0, x);
Perl의 경우:
스플라이스(@s, $i, 0, $x)
참고 항목
참조
- ^ "Mining Idioms from Source Code. Miltiadis Allamanis, Charles A Sutton. FSE 2014: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering November 2014 Pages 472–483". arxiv.org.
- ^ "Print Hello World". www.programming-idioms.org.
- ^ "Insert element in list". www.programming-idioms.org.
외부 링크
- programming-idioms.org은 대부분의 주요 언어로 구현된 짧은 숙어를 보여준다.
- 위키북의 C++ 프로그래밍 숙어.