B1:기초 Basement 썸네일형 리스트형 개발 언어를 선택하는 5가지 기준-서광열 세상에는 수많은 프로그래밍 언어가 존재한다. 각 프로그래밍 언어는 자신만의 독특한 장단점을 가지고 있기 때문에 모든 프로젝트에 적합한 최고의 프로그래밍 언어는 존재하지 않는다. 결국 프로젝트의 요구 사항과 성격, 개발자의 자질, 여러 환경 요소를 모두 고려하여 가장 적절한 프로그래밍 언어를 고르는 일이 중요하다. 이 글에서는 프로그래밍 언어를 선택할 때 어떤 요소들을 고려해야 하는지 알아보자. 소프트웨어 개발자들은 성경에 나오는 바벨탑의 교훈을 잊어버린 걸까? 세상에 존재하는 수많은 언어 때문에 존재하는 불편함을 잘 알고 있는 프로그래밍 언어 개발자들이 왜 각자 문법과 어휘가 다른 수많은 프로그래밍 언어를 만들어 냈을까? 프로그래밍 언어는 단순히 의사소통을 하기 위한 수단만은 아니다. 소프트웨어는 세상에.. 더보기 개발 생산성 향상을 위한 조언-김익환 김익환 | ikkim@ahnlab.com 서울공대를 졸업하고 스탠포드 대학에서 석사를 받은 필자는 현재 안철수연구소 CTO겸 부사장을 맡고 있다. 미국 실리콘밸리 IT회사에서 쌓은 개발경험을 토대로 "대한민국에는 소프트웨어가 없다"는 책을 썼다. 지식정보산업의 중요성이 부각되고 있는 세계화 시대에 글로벌 경쟁력을 갖춘 소프트웨어기업이 나오기를 고대하고 있다. 소프트웨어를 효율적으로 개발한다는 것은 바꿔 말하면 소프트웨어 전문가가 되어야 한다는 것을 의미한다. 그러기 위해서는 소신 있게 행동할 수 있는 올바른 마음가짐과 현재 수준의 정확한 인식, 충분한 지식과 경험이 필요하다. 1부에서는 이처럼 방대한 주제들 중에 몇 가지 핵심적인 항목들에 대해 간단히 알아본다. http://www.imaso.co.kr/.. 더보기 참조 환경과 기호 상수 (referencing environment and symbolic constant) 참조 환경(referencing environment) 명령문에서 접근할 수 있는 모든 이름(변수 이름, 프로시저 이름, 레이블 이름)들의 집합 (1) 정적 범위 규칙 언어의 참조 환경 - 지역환경 : 지역변수로 구성됨 - 비지역환경 : 비지역 변수로 구성됨 - 컴파일시 피연산자나 자료구조의 주소를 결정 (2) 동적 범위 규칙 언어의 참조 환경 - 지역환경과 활성 상태 블록 변수로 구성됨 기호 상수(symbolic constant) 모양은 변수이지만 실제로는 상수임 (1) 정적 기호상수 - 실행 이전에 값이 바인딩 됨 - 컴파일시 실제 값이 대체되며, 기억장소가 할당되지 않는 특징 - Pascal, C, Modula-2 (2) 동적 기호상수 - 실행 시의 계산된 값 바인딩 - 기억장소 할당 필요 - Ad.. 더보기 기억장소와 생명시간 (memory and lifetime) 기억장소 할당 - 변수의 값을 기억시킬 기억장소를 할당(allocation)하면 변수의 메모리 위치가 바인딩됨 - 변수의 필요성이 없어지면 할당된 기억장소가 반납됨 생명 시간(lifetime) - 변수의 값과 기억장소가 바인딩되어 있는 시간간격 - 생명시간에 따른 변수 분류 : 정적변수, 스택변수, 명시적 히프변수, 묵시적 히프변수 1. 정적 변수(static variable) 기억장소가 실행 이전에 바인딩되어 실행종료까지 계속되는 변수이며, 실행시간 전체에 걸친 생명시간을 가진다. 해당 단위 프로그램이 실행중이 아닌 동안에도 바인딩이 유지됨. C/C++, Java에서는 static을 지역변수의 선언 앞에 붙이면 정적 변수로 선언된다. 전역 변수도 정적 변수로 볼 수 있다 (1) 장점 프로그램 실행중 기.. 더보기 동적 형 바인딩(Dynamic Type Binding) 형 바인딩 - 대부분의 언어에서 변수의 형은 정적으로 바인딩 됨 - 동적 형 바인딩 언어에서는 실행시 지정문에 의하여 변수값이 주어지면 그 값에 따라 변수에 형이 바인딩. - 동적 형 바인딩 언어 : APL, SNOBOL4, Perl 장점 - 융통성이 많은 프로그램을 작성할 수 있다 - 어떤 형 매개변수도 받아들일 수 있는 프로시저가 가능하다 단점 - 컴파일러 오류검사능력 저하 - 실행시의 형 조사로 인해 실행속도 저하 - 변수형에 대한 설명자를 실행시에도 유지해야 한다 - 변수의 기억장소가 가변적이어야 한다 더보기 변수 (Variables) 폰 노이만 구조의 메모리 셀을 추상화한 것변수의 속성 1. 이름 : 개체 식별을 위한 문자 스트링 2. 값 : 기억장소에 저장된 내용 3. 형 : 값의 범위와 값에 대한 정의 4. 위치 : 변수와 연관된 기억장소의 주소 5. 범위 : 프로그램 내의 유효구역 6. 생명시간 : 기억장소 점유시간 변수의 선언 명시적 선언 : 선언 후 사용 묵시적 선언 : 명시적 선언 없이 바로 사용 변수의 값 - 지정문에 의해서 변수의 값이 부여(바인딩)됨 - 지정하는 메모리 위치(r-값:right-hand side value)에 지정하는 값(변수,l-값:left-hand side value)을 저장하는 것 예) 지정문 x := y; - 오른쪽(y) : r-값(right-hand side value) : 변수의 값 - 왼쪽(.. 더보기 속성과 바인딩(Attribute and Binding) 속성(Attribute) : 프로그램에 나타나는 변수, 프로시저, 문 등의 실체(Entity)가 가지게 되는 성질 - 변수의 속성 : 이름, 값, 형, 저장위치 등 - 프로시저의 속성 : 이름, 매개변수, 매개변수 전달방식, 수행할 코드 - 명령문 : 수행연산 - 정적 속성 : 정적으로 바인딩되는 속성 - 동적 속성 : 동적으로 바인딩되는 속성 바인딩(Binding) : 실체의 속성을 특정한 값으로 정하는 것. 실체들이 쓰이기 전에 반드시 속성이 결정되어 있어야 하며, 실체의 속성을 특정한 값으로 정하는 것. 각 실체의 바인딩 정보의 저장장소를 설명자(descriptor)라고 함. - 정적 바인딩 : 실행 이전에 바인딩이 이루어 지는 것 - 동적 바인딩 : 실행시에 이루어지는 바인딩 바인딩 시각(Bind.. 더보기 문맥 무관형 문법 (context-free grammer) 문장의 의미와는 무관하게, 문법규칙에만 합당하면 언어로서 적합함 ∙ 메타 기호(metasymbol) : 각진 괄호나 ‘→’, ‘|’들은 모두 기호를 위한 기호, 신택스 정의 기호를 위한 기호를 메타기호. ∙ 문맥무관형 문법의 문법 규칙에는 메타기호 “→”이 오고, 이것의 좌측에는 하나의 문법 구조명이 오며 우측에 구조명이나 다른 기호들이 온다. ∙ 비종결자(nonterminal) : 문법 구조명 ∙ 종결자(terminal) : 단어 혹은 토큰 기호 ∙ 유도(derivation) : 어떠한 문장이 주어졌을 때 그 문장이 그 언어에서 쓰일 수 있는지 판정하기 위해 문법 규칙을 사용하여 으로부터 시작하여 왼쪽의 것을 오른쪽으로 대치해 나가는 과정. > 주어진 문장이 문법규칙에 합당한지를 확인하는 과정 > 문법.. 더보기 이전 1 ··· 19 20 21 22 23 24 25 ··· 34 다음