Badania podstawowe: Różnice pomiędzy wersjami

Z Lem
Skocz do: nawigacji, wyszukiwania
(Utworzono nową stronę "Podczas prac w projekcie Loglan'82 napotkano wiele problemów. Zanim podjęto decyzję w konkretnej sprawie, formulowalismy problem dbając o precyzję i staraliśmy si...")
 
Linia 1: Linia 1:
Podczas prac w projekcie Loglan'82 napotkano wiele problemów. Zanim podjęto decyzję w konkretnej sprawie, formulowalismy problem dbając o precyzję i staraliśmy się znaleźć jego rozwiązanie.
+
Podczas prac w projekcie Loglan'82 napotkano wiele problemów. Zanim podjęto decyzję w konkretnej sprawie, formułowaliśmy problem dbając o precyzję i staraliśmy się znaleźć jego rozwiązanie.
Przykład. Zarządzanie pamięcią obiektów nie jest sprawą trywialną.  Jeśli system zarządzania obiektami nie umożliwi usuwania obiektów już niepotrzebnych, to może to doprowadzić do ''wycieku pamieci''. Zjawisko takie jest nie tylko niepożądane, lecz niebezpieczne.
+
 
 +
'''Przykład'''. Zarządzanie pamięcią obiektów nie jest sprawą trywialną.  Jeśli system zarządzania obiektami nie umożliwi usuwania obiektów już niepotrzebnych, to może to doprowadzić do ''wycieku pamieci''. Zjawisko takie jest nie tylko niepożądane, lecz niebezpieczne. Z drugiej strony zezwolenie na usuwanie obiektu może prowadzić do bardzo groźnych i trudnych do wykrycia błędów tzw. ''wiszących referencji''. Błąd taki powstaje gdy obiekt jest wartościa dwu zmiennych ''x'' i ''y'' . Polecenie: delete(y) (w jezyku C++, free(y) w Pascalu) spowoduje, że obiekt zostanie usunięty, zmienna ''y'' przyjmie wartość nil. Zmienna x utrzymuje swą poprzednią wartość sugerująć, że wskazuje ona na jakiś obiekt. Po chwili może powstać jakiś nowy obiekt innego typu i pewna zmienna ''z'' może wskazywac na ten obiekt. Taka sytuacja to ''błąd sprzecznych informacji''. Zmienna ''x'' mówi tu jest obiekt typu ''T'', zmienna ''z'' mówi tu jest obiekt typu ''U''. Zamieszanie powiększa się gdy twórca języka uważa, ze problem zostanie rozwiazany przez wprowadzenie odśmiecacza (''ang''. garbage collector).

Wersja z 11:09, 29 mar 2014

Podczas prac w projekcie Loglan'82 napotkano wiele problemów. Zanim podjęto decyzję w konkretnej sprawie, formułowaliśmy problem dbając o precyzję i staraliśmy się znaleźć jego rozwiązanie.

Przykład. Zarządzanie pamięcią obiektów nie jest sprawą trywialną. Jeśli system zarządzania obiektami nie umożliwi usuwania obiektów już niepotrzebnych, to może to doprowadzić do wycieku pamieci. Zjawisko takie jest nie tylko niepożądane, lecz niebezpieczne. Z drugiej strony zezwolenie na usuwanie obiektu może prowadzić do bardzo groźnych i trudnych do wykrycia błędów tzw. wiszących referencji. Błąd taki powstaje gdy obiekt jest wartościa dwu zmiennych x i y . Polecenie: delete(y) (w jezyku C++, free(y) w Pascalu) spowoduje, że obiekt zostanie usunięty, zmienna y przyjmie wartość nil. Zmienna x utrzymuje swą poprzednią wartość sugerująć, że wskazuje ona na jakiś obiekt. Po chwili może powstać jakiś nowy obiekt innego typu i pewna zmienna z może wskazywac na ten obiekt. Taka sytuacja to błąd sprzecznych informacji. Zmienna x mówi tu jest obiekt typu T, zmienna z mówi tu jest obiekt typu U. Zamieszanie powiększa się gdy twórca języka uważa, ze problem zostanie rozwiazany przez wprowadzenie odśmiecacza (ang. garbage collector).