2010-07-28 3 views
6

은 그것을 : 강력한 유형프로그래밍 언어의 가장 중요한 속성은 무엇입니까? 나를 위해

Wikipedia :

"강한 입력"는 프로그래밍 언어의 컴파일 또는 실행을 방지, 발생하는 허용 된 상호 혼합에 심각한 제한을 배치 것을 의미한다 유효하지 않은 것으로 간주되는 데이터를 사용하는 소스 코드

왜 중요한가요? 왜냐하면 런타임 오류보다 훨씬 더 많은 컴파일 오류를 좋아합니다.

나는 그것이 중요한 이유 몇 가지 정보와 몇 가지 이유를 제공하는 것이 좋습니다 같아요.

+1

내 고용주가 손에 작업에 대한 작동하는지 그것을 – PostMan

+1

을 지원하는 기능. –

+0

아마도 : * 컴파일 오류를 런타임 오류보다 훨씬 잘 견딜 수 있습니다. * :) –

답변

5

표현력.

즉, 디자인과 아이디어를 표현하기 쉽고 디자인 작업을 위해 기술적 인 해결 방법이 필요하지 않습니다.

+0

더 자세히 설명해 주시겠습니까? 표현의 의미는 완전한 언어를 튜링하는 것입니까? – nanda

+1

모든 실제 프로그래밍 언어는 튜링 완료 형이고 다른 일부는 튜링 완료 형 하위 집합 (예 : C++ 템플릿)을 포함합니다. –

+0

표현력과 간결성의 차이점은 무엇입니까? – nanda

0

간결하면서도 모호한 구문.

Visual Basic : 무엇이 진행되고 있는지는 분명하지만 매우 자세한 내용입니다.

Perl : 상당히 간결하지만 키보드를 임의로 두드리는 것으로보다 선명하게 프로그램을 작성할 수 있습니다.

C 번호 : 바로 : D가 좋은 테스트 후 신속한 배포를 허용하는 방식으로 지원

+2

Perl은 잘 쓰여졌을 때 읽을 수 있지만 먼저 배웠습니다. 나는 개인적으로 C#과 Java가 끔찍하게 장황하다. –

+0

나는 Perl을 참을 수 없다. 그리고 Java가 매우 장황하다는데 동의합니다. 그러나 C#은 최근 몇 년 동안 매우 명확한 구문을 유지하면서 큰 호응을 얻었습니다. 나는 C# fanboy라고 생각한다. D –

+1

나는 C#까지 너와 함께했다. ... 대답은 Lisp man, LISP이다. (혀를 단단히 뺨에) –

1

.

+0

나는 ** 언어 ** 속성이라고 생각하지 않습니다. – nanda

+0

기술적으로 사실입니다. BWT, 헬프 데스크가 있다는 점에서 '지원'되는 것은 아니지만 언어에 대한 추가 도구/IDE/등이 제공된다는 점에 유의하십시오. 어느 언어 속성도 아니지만 여전히 나를 위해 중요합니다. – Tobiasopdenbrouw

4

작업이 완료됩니다. 나는 하나 이상의 언어에 익숙해 져있는 것이 좋다고 생각합니다. C#으로 즐기는만큼 모든 것이 최선이라고 생각하지 않습니다. 그래서 저를 위해서 저는 당면한 과제를보고 어떤 요구 사항이 무엇인지 그리고 가장 잘 맞는 언어를 선택하려고합니다.

2

코드는 읽기 쉽고 쓰기가 쉽기 때문에 의사 코드처럼 보이는 것이 중요합니다. 시간이 지남에 따라 언어와 프로그래머가 서로를 향해 구부러지기 때문에 객관적인 측정 방법은 없습니다.

2

) 강한 타이핑 및이를 지원하는 기능.

C#/Java v1.0은 강력하게 형식화 된 언어 였지만 일부 항목을 수행하기에 충분한 표현력이 없기 때문에 정적 입력을 중단해야하는 경우가 있습니다. 정적으로 입력해야합니다 (예 : 캐스트를 필요로합니다. 예를 들어 유형화되지 않은 콜렉션).

제네릭은 상황을 많이 개선하고 더 높은 제네릭을 지원하는 언어 (예 : 스칼라)에서 더욱 즐거워집니다.

) 간결함. 그것이 명백하다면, 나는 그것을 쓸 필요가 없어야한다. 타입 추론은 이것을위한 훌륭한 도구입니다.

) 훌륭한 라이브러리. 필요한 경우 자주 쓰지 않아도됩니다.

-2

Turing-complete가 도움이됩니다.

+2

Turing-complete가 아닌 것은 프로그래밍 언어로서의 언어를 꽤 실망시킵니다. –

+0

@ Martin : 전적으로 사실이 아닙니다. 프로그래밍 언어는 특정 종류의 계산이나 처리에는 완벽하게 유용 할 수 있지만 일반적인 작업에는 사용할 수 없습니다. 비 Turing-complete는 반드시 유용한 계산을 할 수 없다는 것을 의미하지는 않습니다. –

+0

@ 존 : 이론적으로는 어쩌면 - 실제로 튜링이 완성되지 않은 프로그래밍 언어는 무엇입니까? 이 질문 (http://stackoverflow.com/questions/315340/practical-non-turing-complete-languages)이 나오기 시작한 모든 비 튜링 언어는 꽤 학문적이었습니다. 내 요점은 Turing이 매우 쉽다는 것입니다. 무한 루프를 허용하면 꽤 많이 있습니다. C++의 템플릿을 보면 우연히 컴파일 타임에 Turing 완성도를 달성했습니다. –

1

필자는 순수하고 명목적이며 정적 인 타이핑 (Java 스타일)을 할 수 없습니다. 난 단지 프로그램을 할 수있는 것처럼 효과적으로 다음 중 적어도 하나를 제공하는 언어로 느낄 :

  1. 오리 파이썬, PHP, 펄, 루비와 유사한 입력.

  2. variadics, static if 등 (D의 템플릿 시스템과 같음)과 C#의 var 키워드 또는 D 키워드와 같은 일부 유형 전파를 더한 좋은 템플릿 시스템. 나는 D를 한동안 사용 해왔고 그 템플릿 시스템은 "컴파일 타임 오리 타이핑 (dile typing)"이라고 자주 언급합니다.

이들 중 적어도 하나가 없으면 나는 종종 완전한 스트레이트 재킷에 걸린 것처럼 느껴집니다.

관련 문제