«language-design» 태그된 질문

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

4
안전한 폐쇄를 구현하려면 가비지 수집이 필요합니까?
나는 최근에 다른 개념들 중에서도 클로저가 제시된 프로그래밍 언어에 관한 온라인 과정에 참석했다. 저는이 과정에서 영감을 얻은 두 가지 예를 작성하여 질문을하기 전에 약간의 맥락을 제시합니다. 첫 번째 예는 1에서 x까지의 숫자 목록을 생성하는 SML 함수입니다. 여기서 x는 함수의 매개 변수입니다. fun countup_from1 (x: int) = let fun count (from: …

7
키워드 나 함수보다 연산자가 더 명확합니까? [닫은]
현재로서는이 질문이 Q & A 형식에 적합하지 않습니다. 답변, 사실, 참고 자료 또는 전문 지식을 통해 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론, 논쟁, 여론 조사 또는 광범위한 토론을 요구할 것입니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으십시오 . 휴일 칠년 전에 …


6
구문 오류가없는 언어를 디자인 할 수 있습니까? [닫은]
현재로서는이 질문이 Q & A 형식에 적합하지 않습니다. 답변, 사실, 참고 자료 또는 전문 지식을 통해 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론, 논쟁, 여론 조사 또는 광범위한 토론을 요구할 것입니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으십시오 . 휴일 9 년 …

11
KISS 원칙이 프로그래밍 언어 설계에 적용 되었습니까?
KISS ( "간단하고 멍청하게 유지"또는 "간단하게 바보 유지", 예를 들어 여기 참조 )는 비록 공학에서 유래 한 것임에도 불구하고 소프트웨어 개발에서 중요한 원칙입니다. Wikipedia 기사에서 인용 : Johnson은 설계 엔지니어 팀에게 몇 가지 도구를 제공한다는 이야기를 가장 잘 보여줍니다. 설계중인 제트 항공기는 이러한 도구 만 사용하여 전투 조건에서 현장의 평균 …

1
스칼라에서 List에 추가하는 데 왜 O (n) 시간이 복잡합니까?
방금 List(: +)에 대한 추가 작업의 실행 시간이 의 크기에 따라 선형으로 증가 한다는 것을 읽었습니다 List. 에 추가하는 List것은 꽤 일반적인 작업처럼 보입니다. 이를 수행하는 관용적 방법이 구성 요소 앞에 붙은 다음 목록을 바꾸어야하는 이유는 무엇입니까? 구현은 언제라도 변경 될 수 있으므로 설계 실패 일 수 없습니다. 내 관점에서, …

2
왜 스칼라 옵션 유형이 Haskell과 마찬가지로 Maybe라고 불리지 않습니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 왜 스칼라 옵션 유형이 Haskell과 마찬가지로 Maybe라고 불리지 않습니까? 어쩌면 나에게 훨씬 "의미적인 의미"가 있지만 옵션은 내가 …

2
C ++는 공통 공통 조상으로 다중 상속을 어떻게 처리합니까?
나는 C ++ 사람이 아니지만 이것에 대해 생각해야합니다. C ++에서는 다중 상속이 가능한데 왜 C #에서는 불가능합니까? (나는 다이아몬드 문제를 알고 있지만 여기서 내가 묻는 것은 아닙니다.) C ++는 여러 기본 클래스에서 상속 된 동일한 메소드 서명의 모호성을 어떻게 해결합니까? 왜 같은 디자인이 C #에 포함되지 않습니까?

2
클래스를 통해 모든 코드를 구조화하고 Java와 같은 클래스로 컴파일 할 때의 장단점
편집 : 내 언어는 Java와 달리 다중 상속을 허용합니다. 교육, 레크리에이션 및 잠재적으로 유용한 목적을 위해 자체 프로그래밍 언어를 디자인하고 개발하기 시작했습니다. 처음에는 Java를 기반으로하기로 결정했습니다. 이것은 모든 코드가 클래스 형식으로 작성되고 해당 코드가 VM에 의해로드되는 클래스로 컴파일됨을 의미합니다. 그러나 인터페이스 및 추상 클래스와 같은 기능은 필요하지 않기 때문에 제외했습니다. …

5
Go-like 언어에 비해 클래식 OOP의 장점
언어 디자인과 "이상적인"프로그래밍 언어에 필요한 요소에 대해 많은 생각을 해왔으며 Google의 Go를 연구하면서 일반적인 지식에 대해 의문을 갖게되었습니다. 특히, Go는 실제로 객체 지향 언어 의 구조 를 갖지 않고 객체 지향 프로그래밍의 흥미로운 이점을 모두 가지고있는 것 같습니다 . 클래스는없고 구조 만 있습니다. 클래스 / 구조 상속이없고 구조 임베딩 만 …

4
Ruby는 무엇을 올바르게 했습니까 (또는 Rails입니까)? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 육년 전 . 대부분의 프로그래밍 언어에는 사용 및 적용 가능성에 영향을주는 디자인 결정이 있습니다. 예를 들면 다음과 같습니다. 파이썬은 코드의 유지 …

5
이기종 목록에 대한 특정 목적이 있습니까?
C #과 Java 배경에서 왔을 때, 나는 목록이 균질하다는 것에 익숙합니다. Lisp를 집어 들었을 때 목록이 이기종 일 수 있음을 알았습니다. dynamicC # 에서 키워드로 문제를 해결하기 시작했을 때 C # 4.0부터 이기종 목록이있을 수 있음을 알았습니다. List<dynamic> heterogeneousList 내 질문은 요점이 뭐야? 이기종 목록은 처리를 수행 할 때 훨씬 …

3
왜“자기”가 필요한가요? 파이썬에서 인스턴스 변수를 참조합니까?
Java, Ruby, Haskell 및 Python과 같은 여러 언어로 프로그래밍했습니다. 다른 프로젝트로 인해 하루에 여러 언어로 전환해야합니다. 이제 문제는 self파이썬에서 함수 정의의 첫 번째 매개 변수가 동일한 객체에서 메서드를 호출하는 것과 마찬가지로 쓰는 것을 잊어 버리는 경우가 많습니다 . 즉, 나는이 파이썬 접근 방식에 상당히 놀랐습니다. 기본적으로 우리는 Java 및 Ruby와 …

1
주목할만한 C 확장자에는 동작이 기계어 크기와 무관 한 정수 유형이 포함됩니다.
다른 언어와 비교하여 C의 흥미로운 특징은 많은 데이터 유형이 절대 용어로 지정되지 않고 대상 아키텍처의 단어 크기를 기반으로한다는 것입니다. 이렇게하면 특정 유형에 문제가있는 컴퓨터 에서 언어 를 사용하여 코드를 작성할 수 있지만 다른 아키텍처에서 일관되게 실행되는 코드를 설계하는 것은 매우 어렵습니다. 코드를 고려하십시오 : uint16_t ffff16 = 0xFFFF; int64_t who_knows …

9
Greenspun의 10 번째 규칙, 모든 큰 프로젝트에는 Lisp 통역사가 포함됩니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 육년 전 . Greenspun의 10 번째 규칙 (실제로 유일한 규칙)은 다음과 같이 말합니다. Any sufficiently complicated C or Fortran program contains …

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