-
Data: 2017-08-10 12:17:44
Temat: Re: Rust
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Thursday, August 10, 2017 at 7:48:35 AM UTC+2, Borneq wrote:
> Co prawda udowodniono matematycznie że nie może istnieć maszyna Turinga
> sprawdzająca poprawność innej maszyny Turinga,
A matematycy potrafią sprawdzać. Czy to by oznaczało, że człowiek jest
komputerem lepszej jakości niż MT?
Moim zdaniem może sprawdzać, co łatwo udowodnić: Na nieskończonej
taśmie MT mamy pary uporządkowanie (X,Y), gdzie:
X) ciąg instrukcji
Y) zero lub jedynka (lub informacje o problemie stopu, itd)
Pary są oddzielone symbolem specjalnym, który nie pojawia się w żadnym
programie. Przykładowo, rozpatrujemy programy o N instrukcjach, więc
zero to jest symbol N+1, jedynka N+2, symbol specjalny N+3.
Pary na taśmie są uporządkowane według programów, tzn kolejne programy z
taśmy po zdekodowaniu są kolejnymi liczbami naturalnymi. Zadajemy
MT ciąg instrukcji. Maszyna dekoduj go na liczbę, następnie omija
tyle znaków specjalnych, ile równa jest ta liczba. Innymi słowy: odszukuje
zadany ciąg instrukcji. Po odnalezionym ciągu instrukcji znajduje zero lub
jedynkę lub jeszcze jakieś inne ciekawe informacje. Jeśli znalazła zero, to
daje odpowiedź że program jest niepoprawny. Jeśli znalazła jedynkę, to
daje odpowiedź że ciąg instrukcji jest poprawny (w jakimś sensie).
MT może udzielać odpowiedzi czy program jest poprawny, czy nie, w czasie
wykładniczym względem ilości instrukcji w programie. Gdyby na MT można
było zaimplementować hash-table, to by mogła udzielać odpowiedzi w
czasie O(1), ale z tego co wiem, na taśmie nie można.
Poza tym można zdefiniować minimalną i maksymalną pozycję głowicy. Jeśli
głowica przekroczy którąś z tych pozycji, to program uznajemy za niepoprawny.
W ramach zakresu od min do maks może istnieć skończona ilość stanów, równa
N ^ (max-min+1), gdzie N to ilość symboli. Na drugiej maszynie można
każdemu stanowi przypisać zero lub jedynkę. Druga maszyna może symulować
pierwszą maszynę dla skończonej ilości danych wejściowych. Gdy pierwsza
maszyna chociaż dla jednych danych osiągnie stan z tabeli oznaczony
zerem, to druga maszyna udzieli odpowiedzi że program jest niepoprawny.
Podobnie, jeśli pierwsza maszyna chociaż dla jednych danych przekroczy
zakres <min,max>, to też druga udzieli odpowiedzi że program jest
niepoprawny. Druga maszyna w trakcie symulowania zapamiętuje stany
pierwszej maszyny, które nie są zdefiniowane. Jeśli któryś ze stanów
powtórzy się, to druga maszyna udzieli odpowiedzi, że pierwsza maszyna
się pętli w nieskończoność dla przynajmniej jednego zestawu danych
wejściowych.
Czyli dużo można, ale są to zazwyczaj możliwości teoretyczne, bo
wymagają czasu wykładniczego. Poza tym jest drugi problem: skąd wziąć
maszynę z odpowiedziami który stan jest poprawny, albo który
ciąg instrukcji jest poprawny? Niemniej, to że nie umiemy podać
takiego programu z odpowiedziami, nie uprawnia nas do mówienia
że W OGÓLE nie można automatycznie weryfikować.
> ale z jednej strony w
> Javie stosuje się system asercji czy unit testy, w C++ jest biblioteka
> GSL i odpowiedni plugin sprawdzający zgodność z nią.
> A Rust wymusza swoje reguły. Trudno początkującemu w Rust jest wręcz
> nieraz dla pewnych przypadków napisać kod który się skompiluje (te
> problemy z mutualnością) ale to jest wymuszone automatycznie, nie musi
> tego sprawdzać programista i czegoś przeoczyć.
Ja bym chciał jakiś tego typu język, ale żeby można było go całkowicie
skompilować do kodu maszynowego i żeby dostępne optymalizatory generowały
tak wydajny kod jak dla C++.
Pozdrawiam
Następne wpisy z tego wątku
- 10.08.17 14:19 Maciej Sobczak
- 10.08.17 14:51 slawek
- 10.08.17 14:56 slawek
- 10.08.17 14:57 slawek
- 10.08.17 15:21 M.M.
- 10.08.17 15:25 M.M.
- 10.08.17 18:06 AK
- 10.08.17 21:20 M.M.
- 10.08.17 22:06 slawek
- 10.08.17 22:18 AK
- 10.08.17 22:24 s...@g...com
- 10.08.17 22:23 AK
- 10.08.17 22:27 AK
- 10.08.17 22:32 AK
- 10.08.17 22:45 slawek
Najnowsze wątki z tej grupy
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
Najnowsze wątki
- 2025-12-12 Warszawa => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-11 To już efekt Żurka czy coś jeszcze GORSZEGO?
- 2025-12-11 Policjanci w mieście Łodzi zmierzą ci prędkość z błędem mniejszym niż producent w laboratorium :-)
- 2025-12-11 Warszawa => Senior Java Developer <=
- 2025-12-11 Kolejny prezent
- 2025-12-10 hameryka
- 2025-12-10 Tak im zależy na wlasnym kraju. :-(
- 2025-12-10 Czy "hipoteka przymusowa" podpada (powinna podpadać) pod ochronę immunitetem poselskim? [Ziobro]
- 2025-12-10 Żurek po raz kolejny wykazał jaki poziom reprezentuje
- 2025-12-10 Gdańsk => Microsoft Dynamics AX/365 SCM Consultant - Service & Suppor
- 2025-12-10 Rzeszów => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2025-12-10 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-12-10 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-12-10 Przekroczenie uprawnien
- 2025-12-10 China => Production Coordinator / Representant Product Dev <=




2035 rok coraz mniej realny? Europa traci tempo w wyścigu o elektromobilność