Treści na tej stronie zostały przetłumaczone przy użyciu sztucznej inteligencji (AI) lub technologii tłumaczenia maszynowego i mogą zawierać błędy.

Skip to content
Programming Languages
Human Computer Interaction
Data Science

Telemetria błędów typograficznych z poszanowaniem prywatności na dużą skalę

View Publication

Author

Alan Jeffrey (Roblox), Ben Greenman (Uniwersytet Browna + Uniwersytet Utah), Shriram Krishnamurthi (Uniwersytet Browna) oraz Mitesh Shah (Roblox)

Venue

Sztuka, nauka i inżynieria programowania

Abstract

Kontekst: Roblox Studio pozwala milionom twórców budować interaktywne doświadczenia poprzez programowanie w odmianie języka Lua zwanej Luau. Twórcy stanowią szeroką grupę, od nowicjuszy piszących swój pierwszy skrypt po profesjonalnych programistów; dlatego Luau musi obsługiwać szerokie grono odbiorców. W ramach wysiłków mających na celu wsparcie wszystkich rodzajów programistów, Luau zawiera opcjonalny, stopniowy system typów i dokłada wszelkich starań, aby zminimalizować liczbę fałszywych alarmów. Pytanie badawcze: Ponieważ Luau jest obecnie używane przez wielu twórców, chcemy zebrać dane w celu ulepszenia języka, a w szczególności systemu typów. Standardowym sposobem gromadzenia danych jest wdrożenie telemetrii po stronie klienta; nie możemy jednak zbierać danych osobowych ani informacji zastrzeżonych, co oznacza, że nie możemy gromadzić fragmentów kodu źródłowego, komunikatów o błędach, a nawet ścieżek do plików. Pytania badawcze dotyczą zatem tego, jak przeprowadzić telemetrię, która nie jest inwazyjna, i uzyskać z niej wgląd w błędy typów. Podejście: Zaprojektowaliśmy i wdrożyliśmy pseudonimizowany system telemetrii z losowym pobieraniem próbek dla Luau. Rekordy telemetryczne zawierają znacznik czasu, identyfikator sesji, powód wysłania oraz numeryczne podsumowanie najnowszych analiz typów. Informacje te pozwalają nam badać błędy typów w czasie bez ujawniania danych prywatnych. Wdrożyliśmy system w Roblox Studio wiosną 2023 roku i zebraliśmy ponad 1,5 miliona rekordów telemetrycznych z ponad 340 000 sesji. Wnioski: Przedstawiamy kilka wniosków dotyczących Luau, z których wszystkie sugerują, że telemetria jest skutecznym sposobem badania pragmatyki błędów typowych. Jednym z mniej zaskakujących wniosków jest to, że typy stopniowe z opcją włączenia są mało popularne: istnieje 100-krotna różnica między liczbą sesji Luau bez typów a liczbą sesji z typami. Zaskakujące jest to, że tryb ścisły analizy typów jest zbyt konserwatywny w odniesieniu do interakcji z zasobami danych. Pocieszającym wnioskiem jest to, że analiza typów rzadko osiąga swoje wewnętrzne limity dotyczące rozmiaru problemu. Podstawy: Nasze ustalenia są poparte zbiorem danych zawierającym ponad 1,5 miliona rekordów telemetrycznych. Dane i skrypty do ich analizy są dostępne w artefakcie. Znaczenie: Poza bezpośrednimi korzyściami dla Luau, nasze ustalenia dotyczące typów i błędów typowych mają implikacje dla wdrażania i ergonomii w innych językach stopniowych, takich jak TypeScript, Elixir i Typed Racket. Nasz projekt telemetrii budzi szerokie zainteresowanie, ponieważ raportuje błędy typowe bez ujawniania wrażliwych informacji.