«language-design» 태그된 질문

프로그래밍 언어의 디자인과 구조에 관한 질문.

22
null 참조는 실제로 나쁜 것입니까?
프로그래밍 언어에 null 참조를 포함시키는 것이 "십억 달러의 실수"라고 들었습니다. 그런데 왜? 물론 NullReferenceExceptions이 발생할 수 있지만 무엇을해야합니까? 잘못 사용하면 언어의 모든 요소가 오류의 원인이 될 수 있습니다. 그리고 대안은 무엇입니까? 나는 이것을 말하는 대신에 : Customer c = Customer.GetByLastName("Goodman"); // returns null if not found if (c != null) …

14
대부분의 프로그래밍 언어가 함수에서 단일 값 반환 만 지원하는 이유는 무엇입니까? [닫은]
대부분의 (?) 프로그래밍 언어의 함수가 여러 입력 매개 변수를 지원하지만 하나의 반환 값만 지원하도록 설계된 이유가 있습니까? 대부분의 언어에서 매개 변수를 사용하거나 포인터를 반환하거나 구조체 / 클래스를 정의 / 반환하여 이러한 제한을 "해결"할 수 있습니다. 그러나 프로그래밍 언어가 여러 개의 리턴 값을보다 "자연적인"방식으로 지원하도록 설계되지 않은 것은 이상하게 보입니다. 이에 …

14
왜 0이 거짓입니까?
이 질문은 멍청하게 들릴지 모르지만, 0평가 false및 기타 [정수] 값 true이 대부분의 프로그래밍 언어에 대한 이유는 무엇입니까? 문자열 비교 질문이 너무 간단 해 보이기 때문에 좀 더 설명해 드리겠습니다. 무엇보다도 프로그래머에게 분명해 보일 수 있지만 프로그래밍 언어가없는 이유는 무엇입니까? 나는 어디에서 0평가 true하고 다른 모든 [정수] 값을 false? 그 말은 …

6
왜 XML이 "언어"라고 불리는가?
왜 XML에 이름에 L이 있는지 궁금합니다. XML 자체는 아무것도 "하지"않습니다. 언어가 아닌 데이터 저장 형식 일뿐입니다! 언어는 "할 것"입니다. XML을 적절한 언어로 전환하기 위해 XML을 사용하는 방법 xmlns은 루트 요소에 속성을 추가하는 것입니다. 그런 다음에 만 환경에 대해 알려줍니다. 한 가지 예는 XHTML입니다. 활성화되어 있으며 링크, 하이퍼 텍스트, 스타일 등이 …

12
예외는 예외적 인 경우에만 사용해야한다고 들었습니다. 내 사례가 예외적인지 어떻게 알 수 있습니까?
필자의 구체적인 사례는 사용자가 응용 프로그램에 문자열을 전달하고 응용 프로그램이 구문 분석하여 구조화 된 객체에 할당한다는 것입니다. 때때로 사용자는 잘못된 것을 입력 할 수 있습니다. 예를 들어, 그들의 의견은 사람을 묘사 할 수 있지만 나이는 "사과"라고 말할 수 있습니다. 이 경우 올바른 동작은 트랜잭션을 롤백하고 사용자에게 오류가 발생했음을 알리는 것이므로 …


30
PHP에서 어떤 기능을 원하십니까? [닫은]
지금은 연말 연시이고 모두가 희망하는 바이므로, PHP가 어떤 언어 기능을 추가하고 싶었 을까? 언어에 대한 몇 가지 실용적인 제안 / 소원에 관심이 있습니다. 실용적으로 나는 의미한다 : 실제로 수행 할 수있는 것 ( "PHP가 내 코드의 의미를 추측하여 버그를 해결하기를 바랍니다"또는 "모든 코드가 5ms 미만으로 실행되기를 바랍니다") PHP를 다른 언어로 …

11
Java 개발자가 의식적으로 RAII를 포기 했습니까?
오랜 C # 프로그래머 인 저는 최근에 RAII ( Resource Acquisition Is Initialization) 의 장점에 대해 더 많이 알게되었습니다 . 특히 C # 관용구를 발견했습니다. using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } C ++에 해당합니다. { DbConnection dbConn(connStr); // do stuff with dbConn } …
82 java  c#  c++  language-design 

10
널 (null)이 나쁜 경우 현대 언어가 왜 그것을 구현합니까? [닫은]
Java 또는 C #과 같은 언어 디자이너는 null 참조의 존재와 관련된 문제를 알고 있다고 확신합니다 ( null 참조가 실제로 나쁜 것입니까? 참조 ). 또한 옵션 유형을 구현하는 것은 null 참조보다 훨씬 복잡하지 않습니다. 그들은 왜 어쨌든 포함하기로 결정 했습니까? 나는 null 참조가 부족하면 언어 작성자와 사용자 모두가 더 나은 품질의 …


11
Java에서 문자열을 변경할 수없는 이유는 무엇입니까?
나는 그 이유를 이해할 수 없었다. 항상 다른 개발자와 마찬가지로 String 클래스를 사용하지만 그 값을 수정하면 새로운 String 인스턴스가 만들어집니다. Java에서 String 클래스가 불변 인 이유는 무엇입니까? StringBuffer 또는 StringBuilder와 같은 대안이 있다는 것을 알고 있습니다. 호기심 일뿐입니다.

14
산술 오버플로가 왜 무시됩니까?
좋아하는 프로그래밍 언어로 1에서 2,000,000까지의 모든 숫자를 합한 적이 있습니까? 결과는 수동으로 쉽게 계산할 수 있습니다 (2,000,001,000,000). 부호없는 32 비트 정수의 최대 값보다 약 900 배 더 큽니다. C #이 출력됩니다 -1453759936-음수! 그리고 Java도 마찬가지입니다. 이는 기본적으로 산술 오버플로를 무시하는 일반적인 프로그래밍 언어가 있음을 의미합니다 (C #에는이를 변경할 수있는 숨겨진 …

9
왜 부분 클래스를 사용합니까?
내 이해에서 partial키워드는 아무것도하지 않고 클래스를 여러 소스 파일로 나눌 수 있습니다. 코드 구성 이외의 다른 이유가 있습니까? 생성 된 UI 클래스에서 사용되는 것을 보았습니다. 전체 키워드를 작성하는 것은 좋지 않은 이유입니다. 클래스가 여러 파일을 요구할만큼 충분히 큰 경우에는 너무 많은 작업을 수행했을 수 있습니다. 다른 프로그래머가 완성 할 클래스를 …

8
일부 언어 커뮤니티 (예 : Ruby 및 Python)는 단편화를 방지하는 반면 다른 언어 (예 : Lisp 또는 ML)는 그렇지 않았습니다.
"Lisp"(또는 "Lisp-like")라는 용어는 Common Lisp, Scheme 및 Arc와 같은 다양한 언어의 우산입니다. ML과 같이 다른 언어 커뮤니티에서도 비슷한 조각화가 있습니다. 그러나 Ruby와 Python은 언어 자체를 변경하는 대신 PyPy 또는 YARV와 같은 구현에서 혁신이 더 많이 발생하는 이러한 운명을 피할 수있었습니다. Ruby와 Python 커뮤니티는 언어 조각화를 방지하기 위해 특별한 작업을 수행 …

10
구문 디자인-인수가 전달되지 않을 때 왜 괄호를 사용합니까?
많은 언어에서 구문 function_name(arg1, arg2, ...)은 함수를 호출하는 데 사용됩니다. 인수없이 함수를 호출하려면을 수행해야합니다 function_name(). 컴파일러 또는 스크립트 인터프리터가 ()이를 함수 호출로 성공적으로 감지 해야하는 것이 이상합니다 . 변수가 호출 가능한 것으로 알려진 경우 왜 function_name;충분하지 않습니까? 반면에 일부 언어에서는 다음 function_name 'test';과 같이 할 수 있습니다 : 또는 function_name …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.