coders at work 책에서 저자는 "어떻게 코드에서 불변 식을 사용합니까?"라고 묻습니다. 이 질문의 의미를 설명하십시오. 클래스 불변량이 on wiki 인 것을 보았습니다. 그러나이 예제는 Java로 작성되었으며 Java에서는이 예제를 C#과 관련시키기에 충분하지 않았습니다. .NET 4.0은 불변성, 공분산 및 반항을 도입하고 잘 설명되어 있습니
나는이 시험을위한 알고리즘을 개정하고 있는데이 문제를 풀려고했지만 해결책을 찾지 못했습니다. 이것은 의사 코드입니다. 1. int search (int [] a, int x) {
2. // Pre: ∃i:Nat (0≤i<a.length ∧ a[i]=x) ∧ a is in ascending order
3. // Post: 0≤ r≤ a.length ∧
C++에서 클래스 불변성을 검사하기위한 확립 된 패턴이 있습니까? 이상적으로는 각 공용 멤버 함수의 시작과 끝에서 불변식이 자동으로 검사됩니다. 내가 아는 한, 클래스가있는 C는 특별한 before과 after 멤버 함수를 제공했지만, 불행하게도 계약에 의한 디자인은 당시에는별로 인기가 없었고 Bjarne을 제외한 누구도 그 기능을 사용하지 않아서 제거했다
안녕하세요 도메인 구동 디자인 및 공장/공장 방법에 관한 몇 가지 질문이 있습니다. Domain Driven Design Blue Book (Eric EVan 's Book)에 따르면 복잡한 생성자를 팩토리/팩토리 메서드/빌더에 캡슐화해야하므로 모든 불변 식을 검사하는 일관성있는 위치가 있으므로 내 질문에 대해서는 다음과 같습니다. 마술 효과 (예 : 블로
내 클래스 invariants가 무효화 될 경우를 대비해 런타임 예외가 발생합니다. 이것은 프로그래밍 오류이므로 (NullPointerException과 유사) 클라이언트는 예외를 catch해서는 안됩니다. 예외 클래스를 private 또는 public (또는 다른 것)으로 선언해야합니까? class Foo
{
// ...
privat
JML 관련 질문이 있습니다. array_의 요소에 관한 protected /*@ non_null */ Object[] array_;
로 선언 /*@ invariant array_ != null; */
과의 차이는 무엇입니까? 각각의 경우에 어떤 속성이 유지됩니까? 미리 감사드립니다.
Hoare Logic을보고 있는데 루프 불변성을 찾는 방법을 이해하는 데 문제가 있습니다. 누군가가 루프 불변량을 계산하는 데 사용 된 방법을 설명 할 수 있습니까? 그리고 루프 인바 리언 트가 포함해야하는 것은 "유용한"것이어야합니까? 난 단지 같은 예에서, 간단한 예제를 다루는 불변을 발견하고, 부분과 전체 보정을 증명하고 있습니다 : { i ≥ 0 }