Czy istnieją języki programowania służące do zdefiniowania rozwiązania danego problemu, zamiast definiowania instrukcji jego rozwiązania? Tak więc można zdefiniować, jak powinno wyglądać rozwiązanie lub wynik końcowy, a tłumacz ustny będzie decydował o tym, jak osiągnąć ten wynik. Patrząc na list of programming languages, nie jestem pewien, jak nawet zacząć to badać.Języki programowania, które definiują problem zamiast rozwiązania?
Najlepsze przykłady, jakie obecnie mogę wymyślić, aby pomóc zilustrować to, o co pytam, to SQL i MapReduce, chociaż są to zarówno małe mini-języki przeznaczone do pobierania danych. Ale podczas pisania instrukcji SQL lub MapReduce definiujesz wynik końcowy, a baza danych decyduje o tym, jak najlepiej postępować, aby uzyskać końcowy zestaw wyników.
Widziałem te typy języków, jeśli istnieją, używane w chrupnięciu wielu danych lub znajdowaniu rozwiązań dla zestawu równań. Język senny byłby językiem, który mógłby zinterpretować zdefiniowany problem, zidentyfikować, które części można zrównoważyć, i wykonać rozwiązanie w wielu procesach/rdzeniach/skrzynkach.
Uwielbiam pytanie, chciałbym mieć odpowiedź! –
Brzmi jak inny pomysł przy przenoszeniu problemu do mnie, tak samo jak język specyfikacji :) Jeśli stworzysz coś takiego, albo stracisz dużo mocy (SQL i MapReduce są wysoce wyspecjalizowane i bezużyteczne dla ogólnych celów) lub po prostu tworzysz coś tak złożonego, jak to, co próbujesz zastąpić. – workmad3
@ workmad3: Całkowicie zgadzam się, że tego typu języki będą albo wyspecjalizowane, albo zbyt absurdalnie i niepotrzebnie skomplikowane do praktycznego użytku. Wydaje się jednak, że w przypadku takich języków istniałyby nisze i nie dowiemy się, czy są one opłacalne, dopóki nie spróbujemy, prawda? –